我可以在jQuery上为滚动事件的开始和结束声明逻辑吗?

Chr*_*ris 1 jquery events scroll

我想为用户开始在页面上滚动时设置逻辑,滚动完成后,我该如何实现?

我想避免使用下面的内容,因为这意味着我的逻辑将被不必要地反复触发

$(window).scroll(function(){
    console.log("scrolling");
});
Run Code Online (Sandbox Code Playgroud)

Yi *_*ang 9

您可以尝试定义自己的去抖事件.一个(非常粗略的)实现看起来像这样:

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);
});
Run Code Online (Sandbox Code Playgroud)

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