JQuery自动滚动到底部(但禁用mousescrolling)

时间:2012-08-08 08:58:29

标签: javascript jquery events scroll

我按$ .get加载我的内容,并按照javascript-auto-scrolling“跟随”新的附加数据。现在我想要禁用自动滚动,如果用户“手动滚动”,但是下面的滚动到底部函数也会触发Jquery .scroll() - 函数 - 所以它会禁用它。

if(self.testelem.hasClass("active")){
    $(document).scrollTop($(document).height());
}

如何接收鼠标滚轮事件或阻止scrollTop触发.scroll() - 函数?我还尝试在scrollTop工作时设置一个Timeout来阻止,但这不是一个很好的解决方案,并且有一些缺点。

有什么建议吗?

编辑: 我目前的代码:

我使用按钮#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:是的,我知道。有一些非常相似的问题。我读过它们,但它们的重点不同。

1 个答案:

答案 0 :(得分:1)

要在用户中断停止scrollTo事件中滚动,请尝试以下操作:

$(document).scroll(function(){
    jQuery('html,body').queue([]).stop();  //try this
    //jQuery.scrollTo.window().queue([]).stop(); //failing that try this
});