首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何统计滚动事件的数量

如何统计滚动事件的数量
EN

Stack Overflow用户
提问于 2020-04-16 16:04:18
回答 2查看 91关注 0票数 0

在这里,我正在尝试计算我触发的滚动次数。我通常可以得到滚动的次数,但我想要获得滚动的次数。比方说,如果我通常滚动一次,它包含近4-7个滚动事件,我想将其视为一个滚动事件。当我滚动一个小滚动或一个长滚动时,我想要计算一下我滚动了多少次!

这是小提琴https://jsfiddle.net/j4es8d3x/

代码语言:javascript
运行
复制
 $(window).on('wheel', function(e){

    if(e.originalEvent.wheelDelta /120 > 0) {
        console.log('scrolling up !');
    }
    else{
        console.log('scrolling down !');
    }
 }); 
EN

回答 2

Stack Overflow用户

发布于 2020-04-16 16:09:52

你需要debounce你的事件:

代码语言:javascript
运行
复制
var timer;

$(window).on('wheel', function(e) {
     clearTimeout(timer);

     timer = setTimeout(function () {
         // Calculate scrolls here
     }, 100);
}
票数 2
EN

Stack Overflow用户

发布于 2020-04-16 16:10:28

对于这种情况,有一个定义良好的模式。例如,throttle从lodash中去除

  • constant :将突然的事件(如击键)组合成一个单独的事件。
  • throttle:保证每X毫秒执行一个恒定的流。就像每隔200ms检查一次你的滚动位置来触发一个CSS动画。

试试下面的代码:

代码语言:javascript
运行
复制
_.debounce(yourFunction, 300); 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61245419

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档