是否可以滚动到图像映射区域?

时间:2014-10-06 13:23:32

标签: jquery html area imagemap imagemapster

我坚持这个问题 - 我在单页上有4 img maps以下。我在页面顶部有autocomplete search field,当键入要搜索的字符串时,每个地图上的区域都会突出显示。

最后一步我想要做的是,当我选择建议的单词时,只突出显示1个相应区域(已完成)并移动(滚动)到此区域。但我似乎无法使其发挥作用。

每个area都有唯一的id,如此:

<area id="1-1-5" href="#" alt="" shape="rect" coords="1103,103,1183,169">
<area id="1-1-7" href="#" alt="" shape="rect" coords="1207,103,1272,184">
<area id="1-1-2" href="#" alt="" shape="rect" coords="939,220,1019,286">

我希望如果我将此id输入URL(例如index.php#1-1-7),它会跳转到相应的area,但它不会#39} ;吨。我不知道这是img maps的标准行为,还是imageMapster的某种问题,我将其用于其精彩的突出显示和工具提示超过areas

我也尝试了jQuery .scrollTop()功能,但没有运气。

如果有人知道如何做到这一点,我很乐意尝试一下。

1 个答案:

答案 0 :(得分:1)

感谢Adrian Forsius和Palpatim,我现在有了一个功能,正是我需要的。谢谢你们。

function findCoordinates(area_id){
    if (area_id != null && area_id != '') {
        var i, x = [], y = [];
        var c = $("area#" + area_id).attr('coords').split(',');
        for (i=0; i < c.length; i++){
            x.push(c[i++]);
            y.push(c[i]);
        }
        var t = y.sort(num)[0];
        var l = x.sort(num)[0];
        if (area_id.charAt(0) == '1') {
            t = parseInt(t) + 1350; // added height of 1st map
        } else if (area_id.charAt(0) == '3') {
            t = parseInt(t) + 2700; // added height of 1st and 2nd map
        }
//         alert( 'top = ' + t + ', left = ' + l );
        $(".image-maps").offsetParent().scrollTop(t);
    }
}

function num(a, b){
    return (a-b);
}