检查滚动是否被触发

时间:2011-11-15 17:18:18

标签: javascript jquery html mousewheel

我正在建立一个网站,在这个网站上,我的鼠标轮上有一个活动。问题是,当您在Mac上滚动鼠标(使用魔术鼠标)时,滚动事件会被调用很多次,以至于滚动功能在某一时刻将完全变形并且不再平滑。

有谁知道如何解决这个问题? 我已经尝试检查e.orginalEvent但它总是返回DOMMouseWheel。 同样在PC上你没有这个问题,而另一只鼠标则是神奇的鼠标,效果很好。

由于

2 个答案:

答案 0 :(得分:2)

听起来你需要debounce / throttle插件http://benalman.com/projects/jquery-throttle-debounce-plugin/

它允许您将事件设置为仅在1秒之后的某个时间段内触发。通过这种方式,您的页面不会充满鼠标轮事件,或者如果有人认为单击数百万次表单的提交按钮将使其更快地提交...

答案 1 :(得分:1)

尝试使用underscore.jsthrottle函数。

来自文档:

  

返回函数的受限制版本,当重复调用时,每次等待毫秒最多只调用一次包装函数。对于速度限制事件非常有用,这些事件的发生速度比您能跟上的速度要快。