0

我被这个问题困住了——我img maps在单页上有 4 个。我在页面顶部有一个自动完成搜索字段,当输入要搜索的字符串时,每个地图上的区域都被突出显示。

我要做的最后一步是,当我选择建议的单词以仅突出显示 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">

我希望如果我输入这个idURL例如 index.php#1-1-7),它会跳转到对应area的,但它没有。我不知道这是否是 的标准行为,或者它是否是imageMapsterimg maps的某种问题,我正在使用它来实现出色的突出显示和工具提示。areas

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

如果有人知道如何使这成为可能,我会很高兴尝试一下。

4

1 回答 1

2

感谢 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);
}
于 2014-10-07T12:56:58.393 回答