我正在使用此代码滚动到我页面上的某个元素:
$("html, body").animate({scrollTop: $(".myDiv").offset().top}, 300);
它有效,但有一个问题:当用户在脚本向上滚动时向下滚动时,有一些抖动,因为在不同的方向同时有两个滚动命令 - 这对我来说是合乎逻辑的。
我检查了其他一些具有滚动功能的网站,没有动摇。那么防止这种情况的诀窍是什么呢?
答案 0 :(得分:13)
当您使用滚动,良好检测的动画时,会出现jQuery错误。
我做了一项研究,如何将其关闭滚动并找到这个问题:How to disable scrolling temporarily?
Here is jsFiddle. You will see after click; user cant scroll untill animate complete.
$('.myDiv').click(function(){
disable_scroll();
$('html, body').stop().animate({ scrollTop: 0 }, 700,function() {
enable_scroll();
});
});
编辑:感谢galambalazs btw。
答案 1 :(得分:0)
一个想法 - 尝试连接到滚动事件并使用http://api.jquery.com/stop/来停止动画 ..坏主意..
解决方案的同样问题 - let user scrolling stop jquery animation of scrolltop?