我使用此代码滚动到我的页面上的某个元素:
$("html, body").animate({scrollTop: $(".myDiv").offset().top}, 300);
它有效,但有一个问题:当用户向下滚动时脚本向上滚动,有一些抖动,因为有两个滚动命令同时在不同的方向 - 听起来合乎逻辑。
我检查了一些具有这种滚动功能的其他网站,没有任何好斗。那么防止这种情况的诀窍是什么?
我使用此代码滚动到我的页面上的某个元素:
$("html, body").animate({scrollTop: $(".myDiv").offset().top}, 300);
它有效,但有一个问题:当用户向下滚动时脚本向上滚动,有一些抖动,因为有两个滚动命令同时在不同的方向 - 听起来合乎逻辑。
我检查了一些具有这种滚动功能的其他网站,没有任何好斗。那么防止这种情况的诀窍是什么?
当你使用滚动,良好的检测动画时,这是一个jQuery错误。
我做了一个研究如何将其关闭滚动并找到这个问题: 如何暂时禁用滚动?
这是jsFiddle。点击后你会看到;用户无法滚动直到动画完成。
$('.myDiv').click(function(){
disable_scroll();
$('html, body').stop().animate({ scrollTop: 0 }, 700,function() {
enable_scroll();
});
});
编辑:感谢galambalazs btw。
一个想法 - 尝试挂钩滚动事件并使用 http://api.jquery.com/stop/ 停止你的动画 .. 馊主意..
解决方案同样的问题 - 让用户滚动停止jtopery scrolltop的动画?