我目前正在使用以下代码在jQuery中监听scrollevents:
irisDT[, myDelta(irisDT)]
我遇到的问题是,当用户滚动时,会触发大量$(window).on('wheel', function(e) {
var delta = e.originalEvent.deltaY;
if (delta > 0) //do something
else //do something else
});
个事件。
我想每次用户滚动到只处理第一个滚动事件。
I.E。:我只想处理第一个wheel
事件,然后停止侦听/处理它们,直到用户停止滚动。此时我想再次开始听,这样我就可以处理下一个滚动。
我已经看到wheel
使用的是mousewheel DOMMouseScroll
,而不是.on('wheel')
,但对这些差异了解不足以了解这是否有所帮助。
干杯, 詹姆斯
答案 0 :(得分:1)
您可以使用jQuery debounce插件对您的功能进行速率限制。以下代码将回调限制为每250ms执行一次。
$(window).scroll($.debounce(250, true, function(){
console.log('Scrolling!');
}));
也可以使用Lodash或Underscore库,因为它们也具有去抖功能。