在这里,我正在尝试计算我触发的滚动次数。我通常可以得到滚动的次数,但我想要获得滚动的次数。比方说,如果我通常滚动一次,它包含近4-7个滚动事件,我想将其视为一个滚动事件。当我滚动一个小滚动或一个长滚动时,我想要计算一下我滚动了多少次!
这是小提琴https://jsfiddle.net/j4es8d3x/
$(window).on('wheel', function(e){
if(e.originalEvent.wheelDelta /120 > 0) {
console.log('scrolling up !');
}
else{
console.log('scrolling down !');
}
});
发布于 2020-04-16 16:09:52
你需要debounce你的事件:
var timer;
$(window).on('wheel', function(e) {
clearTimeout(timer);
timer = setTimeout(function () {
// Calculate scrolls here
}, 100);
}
发布于 2020-04-16 16:10:28
对于这种情况,有一个定义良好的模式。例如,throttle或从lodash中去除:
试试下面的代码:
_.debounce(yourFunction, 300);
https://stackoverflow.com/questions/61245419
复制相似问题