Skip to content

Commit bcae4fb

Browse files
committed
Upgrade mousewheel to 3.1.0.
1 parent c1d04de commit bcae4fb

File tree

1 file changed

+73
-56
lines changed

1 file changed

+73
-56
lines changed

external/jquery.mousewheel.js

Lines changed: 73 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -1,84 +1,101 @@
1-
/*! Copyright (c) 2011 Brandon Aaron (http://brandonaaron.net)
1+
/*! Copyright (c) 2013 Brandon Aaron (http://brandonaaron.net)
22
* Licensed under the MIT License (LICENSE.txt).
33
*
44
* Thanks to: http://adomas.org/javascript-mouse-wheel/ for some pointers.
55
* Thanks to: Mathias Bank(http://www.mathias-bank.de) for a scope bug fix.
66
* Thanks to: Seamus Leahy for adding deltaX and deltaY
77
*
8-
* Version: 3.0.6
8+
* Version: 3.1.0
99
*
1010
* Requires: 1.2.2+
1111
*/
1212

13-
(function($) {
13+
(function (factory) {
14+
if (typeof define === 'function' && define.amd) {
15+
// AMD. Register as an anonymous module.
16+
define(['jquery'], factory);
17+
} else {
18+
// Browser globals
19+
factory(jQuery);
20+
}
21+
}(function ($) {
1422

15-
var types = ['DOMMouseScroll', 'mousewheel'];
23+
var toFix = ['wheel', 'mousewheel', 'DOMMouseScroll'];
24+
var toBind = 'onwheel' in document || document.documentMode >= 9 ? ['wheel'] : ['mousewheel', 'DomMouseScroll', 'MozMousePixelScroll'];
25+
var lowestDelta, lowestDeltaXY;
1626

17-
if ($.event.fixHooks) {
18-
for ( var i=types.length; i; ) {
19-
$.event.fixHooks[ types[--i] ] = $.event.mouseHooks;
27+
if ($.event.fixHooks) {
28+
for ( var i=toFix.length; i; ) {
29+
$.event.fixHooks[ toFix[--i] ] = $.event.mouseHooks;
30+
}
2031
}
21-
}
2232

23-
$.event.special.mousewheel = {
24-
setup: function() {
25-
if ( this.addEventListener ) {
26-
for ( var i=types.length; i; ) {
27-
this.addEventListener( types[--i], handler, false );
33+
$.event.special.mousewheel = {
34+
setup: function() {
35+
if ( this.addEventListener ) {
36+
for ( var i=toBind.length; i; ) {
37+
this.addEventListener( toBind[--i], handler, false );
38+
}
39+
} else {
40+
this.onmousewheel = handler;
2841
}
29-
} else {
30-
this.onmousewheel = handler;
31-
}
32-
},
33-
34-
teardown: function() {
35-
if ( this.removeEventListener ) {
36-
for ( var i=types.length; i; ) {
37-
this.removeEventListener( types[--i], handler, false );
42+
},
43+
44+
teardown: function() {
45+
if ( this.removeEventListener ) {
46+
for ( var i=toBind.length; i; ) {
47+
this.removeEventListener( toBind[--i], handler, false );
48+
}
49+
} else {
50+
this.onmousewheel = null;
3851
}
39-
} else {
40-
this.onmousewheel = null;
4152
}
42-
}
43-
};
53+
};
4454

45-
$.fn.extend({
46-
mousewheel: function(fn) {
47-
return fn ? this.bind("mousewheel", fn) : this.trigger("mousewheel");
48-
},
55+
$.fn.extend({
56+
mousewheel: function(fn) {
57+
return fn ? this.bind("mousewheel", fn) : this.trigger("mousewheel");
58+
},
59+
60+
unmousewheel: function(fn) {
61+
return this.unbind("mousewheel", fn);
62+
}
63+
});
4964

50-
unmousewheel: function(fn) {
51-
return this.unbind("mousewheel", fn);
52-
}
53-
});
5465

66+
function handler(event) {
67+
var orgEvent = event || window.event, args = [].slice.call( arguments, 1 ), delta = 0, deltaX = 0, deltaY = 0, absDelta = 0, absDeltaXY = 0;
68+
event = $.event.fix(orgEvent);
69+
event.type = "mousewheel";
5570

56-
function handler(event) {
57-
var orgEvent = event || window.event, args = [].slice.call( arguments, 1 ), delta = 0, returnValue = true, deltaX = 0, deltaY = 0;
58-
event = $.event.fix(orgEvent);
59-
event.type = "mousewheel";
71+
// Old school scrollwheel delta
72+
if ( orgEvent.wheelDelta ) { delta = orgEvent.wheelDelta; }
73+
if ( orgEvent.detail ) { delta = orgEvent.detail * -1; }
6074

61-
// Old school scrollwheel delta
62-
if ( orgEvent.wheelDelta ) { delta = orgEvent.wheelDelta/120; }
63-
if ( orgEvent.detail ) { delta = -orgEvent.detail/3; }
75+
// New school wheel delta (wheel event)
76+
if ( orgEvent.deltaY ) {
77+
deltaY = orgEvent.deltaY * -1;
78+
delta = deltaY;
79+
}
80+
if ( orgEvent.deltaX ) {
81+
deltaX = orgEvent.deltaX;
82+
delta = deltaX * -1;
83+
}
6484

65-
// New school multidimensional scroll (touchpads) deltas
66-
deltaY = delta;
85+
// Webkit
86+
if ( orgEvent.wheelDeltaY !== undefined ) { deltaY = orgEvent.wheelDeltaY; }
87+
if ( orgEvent.wheelDeltaX !== undefined ) { deltaX = orgEvent.wheelDeltaX * -1; }
6788

68-
// Gecko
69-
if ( orgEvent.axis !== undefined && orgEvent.axis === orgEvent.HORIZONTAL_AXIS ) {
70-
deltaY = 0;
71-
deltaX = -1*delta;
72-
}
89+
absDelta = Math.abs(delta);
90+
if ( !lowestDelta || absDelta < lowestDelta ) { lowestDelta = absDelta; }
7391

74-
// Webkit
75-
if ( orgEvent.wheelDeltaY !== undefined ) { deltaY = orgEvent.wheelDeltaY/120; }
76-
if ( orgEvent.wheelDeltaX !== undefined ) { deltaX = -1*orgEvent.wheelDeltaX/120; }
92+
absDeltaXY = Math.max( Math.abs(deltaY), Math.abs(deltaX) );
93+
if ( !lowestDeltaXY || absDeltaXY < lowestDeltaXY ) { lowestDeltaXY = absDeltaXY; }
7794

78-
// Add event and delta to the front of the arguments
79-
args.unshift(event, delta, deltaX, deltaY);
95+
// Add event and delta to the front of the arguments
96+
args.unshift(event, Math.floor(delta/lowestDelta), Math.floor(deltaX/lowestDeltaXY), Math.floor(deltaY/lowestDeltaXY));
8097

81-
return ($.event.dispatch || $.event.handle).apply(this, args);
82-
}
98+
return ($.event.dispatch || $.event.handle).apply(this, args);
99+
}
83100

84-
})(jQuery);
101+
}));

0 commit comments

Comments
 (0)