1(function($) { 2 3var types = ['DOMMouseScroll', 'mousewheel']; 4 5if ($.event.fixHooks) { 6 for ( var i=types.length; i; ) { 7 $.event.fixHooks[ types[--i] ] = $.event.mouseHooks; 8 } 9} 10 11$.event.special.mousewheel = { 12 setup: function() { 13 if ( this.addEventListener ) { 14 for ( var i=types.length; i; ) { 15 this.addEventListener( types[--i], handler, false ); 16 } 17 } else { 18 this.onmousewheel = handler; 19 } 20 }, 21 22 teardown: function() { 23 if ( this.removeEventListener ) { 24 for ( var i=types.length; i; ) { 25 this.removeEventListener( types[--i], handler, false ); 26 } 27 } else { 28 this.onmousewheel = null; 29 } 30 } 31}; 32 33$.fn.extend({ 34 mousewheel: function(fn) { 35 return fn ? this.bind("mousewheel", fn) : this.trigger("mousewheel"); 36 }, 37 38 unmousewheel: function(fn) { 39 return this.unbind("mousewheel", fn); 40 } 41}); 42 43 44function handler(event) { 45 var orgEvent = event || window.event, args = [].slice.call( arguments, 1 ), delta = 0, returnValue = true, deltaX = 0, deltaY = 0; 46 event = $.event.fix(orgEvent); 47 event.type = "mousewheel"; 48 49 // Old school scrollwheel delta 50 if ( orgEvent.wheelDelta ) { delta = orgEvent.wheelDelta/120; } 51 if ( orgEvent.detail ) { delta = -orgEvent.detail/3; } 52 53 // New school multidimensional scroll (touchpads) deltas 54 deltaY = delta; 55 56 // Gecko 57 if ( orgEvent.axis !== undefined && orgEvent.axis === orgEvent.HORIZONTAL_AXIS ) { 58 deltaY = 0; 59 deltaX = -1*delta; 60 } 61 62 // Webkit 63 if ( orgEvent.wheelDeltaY !== undefined ) { deltaY = orgEvent.wheelDeltaY/120; } 64 if ( orgEvent.wheelDeltaX !== undefined ) { deltaX = -1*orgEvent.wheelDeltaX/120; } 65 66 // Add event and delta to the front of the arguments 67 args.unshift(event, delta, deltaX, deltaY); 68 69 return ($.event.dispatch || $.event.handle).apply(this, args); 70} 71 72})(jQuery);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.