Scrolltop动画后滚动/滚动条锁定

时间:2012-04-05 08:12:53

标签: jquery scrolltop

我有一些锚点链接到页面中的特定部分(使用主题标签),以及滚动到文档窗口顶部或底部的锚点。

$("html, body").animate({ scrollTop: $(document).height() }, 2000);

但是,只要动画和滚动到达目的地并完成,文档滚动和滚动条似乎会禁用几秒钟。例如,如果单击“转到页面底部”链接,我的文档窗口将正确滚动到页面底部。当我尝试向上滚动时,它会在一个抖动的动作中上下摇晃一下,然后允许我稍后滚动几次。

关于可能导致此问题的任何提示?

3 个答案:

答案 0 :(得分:18)

这个帖子已经老了,但我遇到了这个问题并且在任何地方都没有答案,但这是一个解决方案:

$(window).bind("mousewheel", function() {
    $("html, body").stop();
});

如果用户在动画执行时使用滚动条,则会停止动画。

答案 1 :(得分:7)

为了对Scotty的答案做出贡献,您实际上还可以为.stop()方法添加两个选项: clearQueue & jumpToEnd

我遇到了一个卷轴问题,并且使用了Scotty的建议.stop()开头,但是注意到动画仍然在挣扎着#34;完成。我在这里查看了文档:.stop() Method Documentation

通过添加.stop(true, false);,我能够:

1。)删除排队的动画(以防万件被触发/级联)

2.)阻止动画尝试跳转到其最终值。

希望能帮助其他人敲击键盘;)

答案 2 :(得分:1)

我建议也将“ {animate””之前添加$("html, body").stop();

$("html, body").stop();
$("html, body").animate({ scrollTop: $(document).height() }, 2000);
$(window).bind("mousewheel", function() {
    $("html, body").stop();
});