关闭firefox的平滑滚动?

Firefox的新平滑滚动function会导致滚动回调在动画的每一步触发。

FF和Chrome中的DEMO看到了差异

有没有办法让它如此

  1. 仅在页面完成滚动时触发一个事件
  2. 使页面突然像在Chrome中一样滚动

试试这个:

function throttle( fn, timeout ) { var tid = 0; return function() { clearTimeout( tid ); var args = [].slice.call( arguments ), ctx = this; tid = setTimeout( function() { fn.apply( ctx, args ); }, timeout ); }; } $(window).on("scroll", throttle( function() { $('div').eq(0).append('scroll happened'); }, 100)); 

一旦在100毫秒内没有发生滚动,它将仅触发滚动。

http://jsfiddle.net/NLGHS/1/

这取决于你的目的。 我根据您的代码猜测,当用户向下滚动页面时,您想要触发动画,有点像Ben the Bodyguard: http : //benthebodyguard.com/index.php

为此,您可以将动画绑定到页面中的位置。 您可以从传递给scroll方法的事件对象中获取当前滚动位置。 然后,您需要做一些数学运算来确定当前滚动位置是否已经改变到足以触发下一个动画。