2 * jquery.event.wheel - v 1.0.0 - http://jquery-ux.com/
3 * Copyright (c) 2010 Michael Helgeson, Three Dub Media
4 * Open Source MIT License - http://jquery-ux.com/license
8 // REQUIRES: jquery 1.3+
10 ;(function( $ ){ // secure $ jQuery alias
13 $.fn.wheel = function( fn ){
14 return this[ fn ? "bind" : "trigger" ]( "wheel", fn );
17 // special event config
18 var wheel = $.event.special.wheel = {
19 events: "DOMMouseScroll mousewheel" // IE, opera, safari, firefox
20 +( $.browser.mozilla && $.browser.version < "1.9" ? " mousemove" : "" ), // firefox 2
22 $.event.add( this, wheel.events, wheel.handler, {} );
25 $.event.remove( this, wheel.events, wheel.handler );
27 handler: function( event ){
28 switch ( event.type ){
29 case "mousewheel": // IE, opera, safari
30 event.delta = event.wheelDelta/120;
35 case "DOMMouseScroll": // firefox
36 $.extend( event, event.data ); // fix event properties in FF2
37 event.delta = -event.detail/3;
39 case "mousemove": // FF2 has incorrect event positions
40 return $.extend( event.data, { // store the correct properties
41 clientX: event.clientX, pageX: event.pageX,
42 clientY: event.clientY, pageY: event.pageY
45 event.type = "wheel"; // hijack the event
46 return $.event.handle.call( this, event, event.delta );
50 })( jQuery ); // confine scope