summaryrefslogtreecommitdiffstats
path: root/ecomp-portal-FE/client/bower_components/jquery.event.drag-new/event.wheel/jquery.event.wheel.js
blob: 0d1380f06827af0dca3e8f3e5264a256c687f1e9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
/*! 
 * jquery.event.wheel - v 1.0.0 - http://jquery-ux.com/
 * Copyright (c) 2010 Michael Helgeson, Three Dub Media
 * Open Source MIT License - http://jquery-ux.com/license 
 */
// Created: 2008-07-01
// Updated: 2010-01-08
// REQUIRES: jquery 1.3+

;(function( $ ){ // secure $ jQuery alias

// jquery method
$.fn.wheel = function( fn ){
	return this[ fn ? "bind" : "trigger" ]( "wheel", fn );
};

// special event config
var wheel = $.event.special.wheel = {
	events: "DOMMouseScroll mousewheel" // IE, opera, safari, firefox
		+( $.browser.mozilla && $.browser.version < "1.9" ? " mousemove" : "" ), // firefox 2
	setup: function(){
		$.event.add( this, wheel.events, wheel.handler, {} );
	},
	teardown: function(){
		$.event.remove( this, wheel.events, wheel.handler );
	},
	handler: function( event ){ 
		switch ( event.type ){
			case "mousewheel": // IE, opera, safari
				event.delta = event.wheelDelta/120; 
				if ( window.opera ){
					event.delta *= -1; 
				}
				break;
			case	 "DOMMouseScroll": // firefox
				$.extend( event, event.data ); // fix event properties in FF2
				event.delta = -event.detail/3; 
				break;
			case "mousemove": // FF2 has incorrect event positions
				return $.extend( event.data, { // store the correct properties
					clientX: event.clientX, pageX: event.pageX, 
					clientY: event.clientY, pageY: event.pageY
				});			
		}
		event.type = "wheel"; // hijack the event	
		return $.event.handle.call( this, event, event.delta );
	}
};
	
})( jQuery ); // confine scope