diff --git a/jquery.mousewheel.js b/jquery.mousewheel.js index 38b60951b..fc7526b14 100755 --- a/jquery.mousewheel.js +++ b/jquery.mousewheel.js @@ -1,12 +1,15 @@ /*! Copyright (c) 2011 Brandon Aaron (http://brandonaaron.net) + * + * Wheel event handling added Jan 2013 by Lydia Katsamberis (http://www.llkats.com) + * * Licensed under the MIT License (LICENSE.txt). * * Thanks to: http://adomas.org/javascript-mouse-wheel/ for some pointers. * Thanks to: Mathias Bank(http://www.mathias-bank.de) for a scope bug fix. * Thanks to: Seamus Leahy for adding deltaX and deltaY * - * Version: 3.0.6 - * + * Version: 3.0.7 + * * Requires: 1.2.2+ */ @@ -30,7 +33,7 @@ $.event.special.mousewheel = { this.onmousewheel = handler; } }, - + teardown: function() { if ( this.removeEventListener ) { for ( var i=types.length; i; ) { @@ -46,7 +49,7 @@ $.fn.extend({ mousewheel: function(fn) { return fn ? this.bind("mousewheel", fn) : this.trigger("mousewheel"); }, - + unmousewheel: function(fn) { return this.unbind("mousewheel", fn); } @@ -57,27 +60,31 @@ function handler(event) { var orgEvent = event || window.event, args = [].slice.call( arguments, 1 ), delta = 0, returnValue = true, deltaX = 0, deltaY = 0; event = $.event.fix(orgEvent); event.type = "mousewheel"; - + // Old school scrollwheel delta if ( orgEvent.wheelDelta ) { delta = orgEvent.wheelDelta/120; } if ( orgEvent.detail ) { delta = -orgEvent.detail/3; } - + + // New school Wheel event delta + if ( orgEvent.deltaY ) { delta = orgEvent.deltaY/9 * -1; } + if ( orgEvent.deltaX ) { delta = orgEvent.deltaX/9 * -1; } + // New school multidimensional scroll (touchpads) deltas deltaY = delta; - + // Gecko if ( orgEvent.axis !== undefined && orgEvent.axis === orgEvent.HORIZONTAL_AXIS ) { deltaY = 0; deltaX = -1*delta; } - + // Webkit if ( orgEvent.wheelDeltaY !== undefined ) { deltaY = orgEvent.wheelDeltaY/120; } if ( orgEvent.wheelDeltaX !== undefined ) { deltaX = -1*orgEvent.wheelDeltaX/120; } - + // Add event and delta to the front of the arguments args.unshift(event, delta, deltaX, deltaY); - + return ($.event.dispatch || $.event.handle).apply(this, args); }