diff --git a/jquery.mousewheel.js b/jquery.mousewheel.js index c26748dd2..0e93aaa8c 100755 --- a/jquery.mousewheel.js +++ b/jquery.mousewheel.js @@ -23,7 +23,7 @@ toBind = ( 'onwheel' in document || document.documentMode >= 9 ) ? ['wheel'] : ['mousewheel', 'DomMouseScroll', 'MozMousePixelScroll'], slice = Array.prototype.slice, - lowestDelta; + nullLowestDeltaTimeout, lowestDelta; if ( $.event.fixHooks ) { for ( var i = toFix.length; i; ) { @@ -116,7 +116,18 @@ // Add event and delta to the front of the arguments args.unshift(event, delta, deltaX, deltaY); + // Clearout lowestDelta after sometime to better + // handle multiple device types that give different + // a different lowestDelta + // Ex: trackpad = 3 and mouse wheel = 120 + if (nullLowestDeltaTimeout) { clearTimeout(nullLowestDeltaTimeout); } + nullLowestDeltaTimeout = setTimeout(nullLowestDelta, 200); + return ($.event.dispatch || $.event.handle).apply(this, args); } + function nullLowestDelta() { + lowestDelta = null; + } + }));