我希望一些 js 会自动在页面下方滚动一点点,但是我也希望这个滚动可以被用户打断。
当使用 jquery 自动滚动时,当您使用 .animate 为滚动设置动画,然后用户在动画滚动仍在进行时开始滚动,它们会相互交互并产生奇怪的跳跃效果。
有没有办法让用户在 javascript 滚动期间滚动它只是停止 javascript 滚动?
我希望一些 js 会自动在页面下方滚动一点点,但是我也希望这个滚动可以被用户打断。
当使用 jquery 自动滚动时,当您使用 .animate 为滚动设置动画,然后用户在动画滚动仍在进行时开始滚动,它们会相互交互并产生奇怪的跳跃效果。
有没有办法让用户在 javascript 滚动期间滚动它只是停止 javascript 滚动?
这是无法完成的,因为您不知道最终用户是滚动还是您通过 javascript 滚动了页面。
无论原因如何,只要元素的滚动位置发生变化,就会发送滚动事件。在滚动条上单击或拖动鼠标、在元素内拖动、按箭头键或使用鼠标滚轮都可能导致此事件。
我试图做但失败了,因为上述原因:
// callback for the scroll event
$(document.body).scroll(function(){
// Stop the scrolling!
$('html, body').stop();
});
其他用户的回答实际上是不正确的,有可能并且之前已经回答过: 如何区分手动滚动(通过鼠标滚轮/滚动条)与 Javascript/jQuery 滚动?
检查答案
"$('body,html').bind('scroll mousedown wheel DOMMouseScroll mousewheel keyup', function(e){
if ( e.which > 0 || e.type == "mousedown" || e.type == "mousewheel"){
$("html,body").stop();
}
})"
我已经更新了以前的用户 JS Fiddle 以使用建议的解决方案,并且效果很好。 http://jsfiddle.net/Lwvba/7/