From dbdbb866676fd8467620ede20f37f6e4918c34b3 Mon Sep 17 00:00:00 2001 From: Seamus Leahy Date: Sun, 14 Feb 2010 22:40:25 -0500 Subject: [PATCH] Adding deltaX and deltaY for horizontal scrolling --- jquery.mousewheel.js | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/jquery.mousewheel.js b/jquery.mousewheel.js index 9a9865731..126c90542 100644 --- a/jquery.mousewheel.js +++ b/jquery.mousewheel.js @@ -43,16 +43,31 @@ $.fn.extend({ function handler(event) { - var args = [].slice.call( arguments, 1 ), delta = 0, returnValue = true; + var orgEvent = event; + var args = [].slice.call( arguments, 1 ), delta = 0, returnValue = true, deltaX = 0, deltaY = 0; event = $.event.fix(event || window.event); event.type = "mousewheel"; + // Old school scrollwheel delta if ( event.wheelDelta ) delta = event.wheelDelta/120; if ( event.detail ) delta = -event.detail/3; + // 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); + args.unshift(event, delta, deltaX, deltaY); return $.event.handle.apply(this, args); }