1- /*! Copyright (c) 2011 Brandon Aaron (http://brandonaaron.net)
2- * Licensed under the MIT License (LICENSE.txt).
3- *
4- * Thanks to: http://adomas.org/javascript-mouse-wheel/ for some pointers.
5- * Thanks to: Mathias Bank(http://www.mathias-bank.de) for a scope bug fix.
6- * Thanks to: Seamus Leahy for adding deltaX and deltaY
7- *
8- * Version: 3.0.6
9- *
10- * Requires: 1.2.2+
11- */
12-
13- ( function ( $ ) {
14-
15- var types = [ 'DOMMouseScroll' , 'mousewheel' ] ;
16-
17- if ( $ . event . fixHooks ) {
18- for ( var i = types . length ; i ; ) {
19- $ . event . fixHooks [ types [ -- i ] ] = $ . event . mouseHooks ;
20- }
21- }
22-
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 ) ;
28- }
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 ) ;
38- }
39- } else {
40- this . onmousewheel = null ;
41- }
42- }
43- } ;
44-
45- $ . fn . extend ( {
46- mousewheel : function ( fn ) {
47- return fn ? this . bind ( "mousewheel" , fn ) : this . trigger ( "mousewheel" ) ;
48- } ,
49-
50- unmousewheel : function ( fn ) {
51- return this . unbind ( "mousewheel" , fn ) ;
52- }
53- } ) ;
54-
55-
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" ;
60-
61- // Old school scrollwheel delta
62- if ( orgEvent . wheelDelta ) { delta = orgEvent . wheelDelta / 120 ; }
63- if ( orgEvent . detail ) { delta = - orgEvent . detail / 3 ; }
64-
65- // New school multidimensional scroll (touchpads) deltas
66- deltaY = delta ;
67-
68- // Gecko
69- if ( orgEvent . axis !== undefined && orgEvent . axis === orgEvent . HORIZONTAL_AXIS ) {
70- deltaY = 0 ;
71- deltaX = - 1 * delta ;
72- }
73-
74- // Webkit
75- if ( orgEvent . wheelDeltaY !== undefined ) { deltaY = orgEvent . wheelDeltaY / 120 ; }
76- if ( orgEvent . wheelDeltaX !== undefined ) { deltaX = - 1 * orgEvent . wheelDeltaX / 120 ; }
77-
78- // Add event and delta to the front of the arguments
79- args . unshift ( event , delta , deltaX , deltaY ) ;
80-
81- return ( $ . event . dispatch || $ . event . handle ) . apply ( this , args ) ;
82- }
83-
1+ /*! Copyright (c) 2011 Brandon Aaron (http://brandonaaron.net)
2+ * Licensed under the MIT License (LICENSE.txt).
3+ *
4+ * Thanks to: http://adomas.org/javascript-mouse-wheel/ for some pointers.
5+ * Thanks to: Mathias Bank(http://www.mathias-bank.de) for a scope bug fix.
6+ * Thanks to: Seamus Leahy for adding deltaX and deltaY
7+ *
8+ * Version: 3.0.6
9+ *
10+ * Requires: 1.2.2+
11+ */
12+
13+ ( function ( $ ) {
14+
15+ var types = [ 'DOMMouseScroll' , 'mousewheel' ] ;
16+
17+ if ( $ . event . fixHooks ) {
18+ for ( var i = types . length ; i ; ) {
19+ $ . event . fixHooks [ types [ -- i ] ] = $ . event . mouseHooks ;
20+ }
21+ }
22+
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 ) ;
28+ }
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 ) ;
38+ }
39+ } else {
40+ this . onmousewheel = null ;
41+ }
42+ }
43+ } ;
44+
45+ $ . fn . extend ( {
46+ mousewheel : function ( fn ) {
47+ return fn ? this . bind ( "mousewheel" , fn ) : this . trigger ( "mousewheel" ) ;
48+ } ,
49+
50+ unmousewheel : function ( fn ) {
51+ return this . unbind ( "mousewheel" , fn ) ;
52+ }
53+ } ) ;
54+
55+
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" ;
60+
61+ // Old school scrollwheel delta
62+ if ( orgEvent . wheelDelta ) { delta = orgEvent . wheelDelta / 120 ; }
63+ if ( orgEvent . detail ) { delta = - orgEvent . detail / 3 ; }
64+
65+ // New school multidimensional scroll (touchpads) deltas
66+ deltaY = delta ;
67+
68+ // Gecko
69+ if ( orgEvent . axis !== undefined && orgEvent . axis === orgEvent . HORIZONTAL_AXIS ) {
70+ deltaY = 0 ;
71+ deltaX = - 1 * delta ;
72+ }
73+
74+ // Webkit
75+ if ( orgEvent . wheelDeltaY !== undefined ) { deltaY = orgEvent . wheelDeltaY / 120 ; }
76+ if ( orgEvent . wheelDeltaX !== undefined ) { deltaX = - 1 * orgEvent . wheelDeltaX / 120 ; }
77+
78+ // Add event and delta to the front of the arguments
79+ args . unshift ( event , delta , deltaX , deltaY ) ;
80+
81+ return ( $ . event . dispatch || $ . event . handle ) . apply ( this , args ) ;
82+ }
83+
8484} ) ( jQuery ) ;
0 commit comments