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