Javascript锚点以均匀的速度滚动

时间:2014-08-17 16:56:39

标签: jquery anchor easing

我有这段代码可以平滑滚动到我的代码中的锚点(技术上不是我的代码,我修改了模板),但我的问题是无论页面在哪里,它都会在1400毫秒它是,所以顶部的那些变得非常缓慢,但有些进一步下降,它像石头一样下降。是否有可能读取ID标签的距离并改变持续时间,以便我可以概括速度?

$(".menu a").click(function () {
    $("html, body").animate({
        scrollTop: $($(this).attr("href")).offset().top + "px"
    }, {
        duration: 1400,
        easing: "swing"
    });
    return false;
});

1 个答案:

答案 0 :(得分:1)

您已使用此代码$($(this).attr("href")).offset().top检索顶部的偏移量。

所以你需要做的就是计算速度,比如:

duration:  $($(this).attr("href")).offset().top / 2 // = 500px per second.