自定义滚动Js& jQuery:一个滚动事件

时间:2016-11-14 11:48:02

标签: javascript jquery scroll

我目前正在使用以下代码在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'),但对这些差异了解不足以了解这是否有所帮助。

干杯, 詹姆斯

1 个答案:

答案 0 :(得分:1)

您可以使用jQuery debounce插件对您的功能进行速率限制。以下代码将回调限制为每250ms执行一次。

  $(window).scroll($.debounce(250, true, function(){
    console.log('Scrolling!');
  }));

也可以使用LodashUnderscore库,因为它们也具有去抖功能。