我使用此代码滚动到我的网页上某一个元素:
$("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();
});
});
编辑:感谢BTW galambalazs。
一个想法-试图钩住scroll事件,并使用http://api.jquery.com/stop/停止动画..坏主意..
同样的问题的解决方案- 让scrollTop的用户滚动停止jQuery的动画?