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

标签 jquery events scroll

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

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

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

最佳答案

您可以尝试定义您自己的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/现场演示

关于jquery - 我可以在 jQuery 上声明滚动事件开始和结束的逻辑吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4096429/

相关文章:

javascript - 如何在 Javascript 中操作当前时间(多次并将其添加到表中)?

javascript - 父元素中子元素的 jQuery 索引

c# - 数据模板中的 MVVM 命令

javascript - Ember.js - 在 Controller /路由器链上传播事件

c# - MS Test 单元测试引发事件内容

javascript - 自定义GSAP "hacked"鼠标滚轮滚动

javascript - jQuery:删除ajax成功添加的类

Jquery .click() 更胜一筹

.net - WPF TextBox DoubleClick 事件在快速使用滚动条时触发

wpf - 在 ListView 上用鼠标激活水平滚动