如何为特定锚点制作偏移锚点函数?

时间:2016-07-31 03:53:00

标签: jquery

我有以下代码:

function offsetAnchor() {
    if(location.hash.length !== 0) {
        window.scrollTo(window.scrollX, window.scrollY - 160);
    }
}

       $(window).on("hashchange",offsetAnchor);

       window.setTimeout(offsetAnchor, 1); 

当我点击一个锚点时,它会引导我到-160像素的锚点,这是正确的。但是,我页面上的每个锚点都需要一个特定的偏移量。

如何指定仅对某个锚点起作用的函数?有没有办法在一个函数内为多个锚提供多个偏移?

1 个答案:

答案 0 :(得分:0)

如何重构那段代码:

var anchorDistanceMap = {
    "someAnchor": -160,
    "otherAnchor": -400
};

function offsetAnchor(distance) {
    if (location.hash.length !== 0) {
        window.scrollTo(window.scrollX, window.scrollY - distance);
    }
}

$(window).on("hashchange", function (e) {
    window.setTimeout(function () {
        offsetAnchor(anchorDistanceMap[location.hash]);
    }, 1);
});

然后你只需编辑anchorDistanceMap对象来表示每个锚所需的距离。