【问题标题】:Can I declare logic on jQuery for the start and end of a scrolling event?我可以在 jQuery 上为滚动事件的开始和结束声明逻辑吗?
【发布时间】:2010-11-04 20:43:53
【问题描述】:

我想设置用户何时开始滚动页面以及滚动完成后的逻辑,我该如何完成?

我想避免以下情况,因为这意味着我的逻辑将被不必要地反复触发

$(window).scroll(function(){
    console.log("scrolling");
});

【问题讨论】:

    标签: jquery events scroll


    【解决方案1】:

    您可以尝试定义自己的debounced events。一个(非常粗略的)实现看起来像这样:

    var t, l = (new Date()).getTime();
    
    $(window).scroll(function(){
        var now = (new Date()).getTime();
    
        if(now - l > 400){
            $(this).trigger('scrollStart');
            l = now;
        }
    
        clearTimeout(t);
        t = setTimeout(function(){
            $(window).trigger('scrollEnd');
        }, 300);
    });
    

    请参阅:http://www.jsfiddle.net/yijiang/fGmbe/ 观看现场演示

    【讨论】:

    • +1,太棒了!这是对改进版本的贡献,jsfiddle.net/fGmbe/1
    • 作品真棒!伟大的逻辑。谢谢:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-31
    • 2013-02-03
    • 1970-01-01
    • 1970-01-01
    • 2011-09-27
    相关资源
    最近更新 更多