我根据 $.get 加载我的内容,并根据 javascript 自动滚动“遵循”新的附加数据。现在,如果用户“手动滚动”,我想禁用自动滚动,但以下滚动到底部函数也会触发 Jquery .scroll() 函数 - 因此它会禁用它。
if(self.testelem.hasClass("active")){
$(document).scrollTop($(document).height());
}
如何接收鼠标滚轮事件或阻止scrollTop触发.scroll()函数?我还尝试设置一个超时来阻止滚动顶部工作,但这不是一个很好的解决方案,并且有一些缺点。
有什么建议吗?
编辑: 我当前的代码:
我使用按钮 #stb(滚动到底部)和 .active 类来将其关闭/打开。
$.get("url", function(data){
//do something
if(self.testelem.hasClass("active")){
$(document).scrollTop($(document).height());
}
});
$(document).scroll(function(){
jQuery('html,body').queue([]).stop(); //try this
//$("#stb").parent().removeClass("active");
});
ps:是的,我知道。有几个非常相似的问题。我读过它们,但它们在要点上有所不同。
最佳答案
要在用户滚动中间中断时停止 scrollTo
事件,请尝试以下操作:
$(document).scroll(function(){
jQuery('html,body').queue([]).stop(); //try this
//jQuery.scrollTo.window().queue([]).stop(); //failing that try this
});
关于javascript - JQuery 自动滚动到底部(但禁用鼠标滚动),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11861059/