|
3 | 3 | *
|
4 | 4 | * Version: 3.1.5-pre
|
5 | 5 | *
|
6 |
| - * Requires: 1.2.2+ |
| 6 | + * Requires: jQuery 1.2.2+ |
7 | 7 | */
|
8 | 8 |
|
9 | 9 | (function (factory) {
|
|
19 | 19 | }
|
20 | 20 | }(function ($) {
|
21 | 21 |
|
22 |
| - var toFix = ['wheel', 'mousewheel', 'DOMMouseScroll', 'MozMousePixelScroll']; |
| 22 | + var toFix = ['wheel', 'mousewheel', 'DOMMouseScroll', 'MozMousePixelScroll']; |
23 | 23 | var toBind = 'onwheel' in document || document.documentMode >= 9 ? ['wheel'] : ['mousewheel', 'DomMouseScroll', 'MozMousePixelScroll'];
|
| 24 | + var slice = Array.prototype.slice; |
24 | 25 | var lowestDelta, lowestDeltaXY;
|
25 | 26 |
|
26 | 27 | if ( $.event.fixHooks ) {
|
|
64 | 65 |
|
65 | 66 | function handler(event) {
|
66 | 67 | var orgEvent = event || window.event,
|
67 |
| - args = [].slice.call(arguments, 1), |
| 68 | + args = slice.call(arguments, 1), |
68 | 69 | delta = 0,
|
69 | 70 | deltaX = 0,
|
70 | 71 | deltaY = 0,
|
|
75 | 76 | event.type = 'mousewheel';
|
76 | 77 |
|
77 | 78 | // Old school scrollwheel delta
|
78 |
| - if ( orgEvent.wheelDelta ) { delta = orgEvent.wheelDelta; } |
79 |
| - if ( orgEvent.detail ) { delta = orgEvent.detail * -1; } |
| 79 | + if ( 'detail' in orgEvent ) { deltaY = orgEvent.detail * -1; } |
| 80 | + if ( 'wheelDelta' in orgEvent ) { deltaY = orgEvent.wheelDelta; } |
| 81 | + if ( 'wheelDeltaY' in orgEvent ) { deltaY = orgEvent.wheelDeltaY; } |
| 82 | + if ( 'wheelDeltaX' in orgEvent ) { deltaX = orgEvent.wheelDeltaX * -1; } |
80 | 83 |
|
81 |
| - // At a minimum, setup the deltaY to be delta |
82 |
| - deltaY = delta; |
83 |
| - |
84 |
| - // Firefox < 17 related to DOMMouseScroll event |
85 |
| - if ( orgEvent.axis !== undefined && orgEvent.axis === orgEvent.HORIZONTAL_AXIS ) { |
| 84 | + // Firefox < 17 horizontal scrolling related to DOMMouseScroll event |
| 85 | + if ( 'axis' in orgEvent && orgEvent.axis === orgEvent.HORIZONTAL_AXIS ) { |
86 | 86 | deltaY = 0;
|
87 | 87 | deltaX = delta * -1;
|
88 | 88 | }
|
89 | 89 |
|
| 90 | + // Set delta to be deltaY or deltaX if deltaY is 0 for backwards compatabilitiy |
| 91 | + delta = deltaY === 0 ? deltaX : deltaY; |
| 92 | + |
90 | 93 | // New school wheel delta (wheel event)
|
91 |
| - if ( orgEvent.deltaY ) { |
92 |
| - deltaY = orgEvent.deltaY * -1; |
93 |
| - delta = deltaY; |
| 94 | + if ( 'deltaY' in orgEvent ) { |
| 95 | + deltaY = orgEvent.deltaY * -1; |
| 96 | + delta = deltaY; |
94 | 97 | }
|
95 |
| - if ( orgEvent.deltaX ) { |
96 |
| - deltaX = orgEvent.deltaX; |
97 |
| - delta = deltaX * -1; |
| 98 | + if ( 'deltaX' in orgEvent ) { |
| 99 | + deltaX = orgEvent.deltaX; |
| 100 | + delta = detlaX * -1; |
98 | 101 | }
|
99 | 102 |
|
100 |
| - // Webkit |
101 |
| - if ( orgEvent.wheelDeltaY !== undefined ) { deltaY = orgEvent.wheelDeltaY; } |
102 |
| - if ( orgEvent.wheelDeltaX !== undefined ) { deltaX = orgEvent.wheelDeltaX * -1; } |
103 |
| - |
104 | 103 | // Look for lowest delta to normalize the delta values
|
105 | 104 | absDelta = Math.abs(delta);
|
106 | 105 | if ( !lowestDelta || absDelta < lowestDelta ) { lowestDelta = absDelta; }
|
|
0 commit comments