-
Notifications
You must be signed in to change notification settings - Fork 1.7k
/
Copy pathjquery.mousewheel.min.js
5 lines (5 loc) · 2.62 KB
/
jquery.mousewheel.min.js
1
2
3
4
5
/*!
* jQuery Mousewheel 3.2.0
* Copyright OpenJS Foundation and other contributors
*/
!function(e){"function"==typeof define&&define.amd?define(["jquery"],e):"object"==typeof exports?module.exports=e:e(jQuery)}(function(r){var f,d,e=["wheel","mousewheel","DOMMouseScroll","MozMousePixelScroll"],t="onwheel"in window.document||9<=window.document.documentMode?["wheel"]:["mousewheel","DomMouseScroll","MozMousePixelScroll"],w=Array.prototype.slice;if(r.event.fixHooks)for(var n=e.length;n;)r.event.fixHooks[e[--n]]=r.event.mouseHooks;var c=r.event.special.mousewheel={version:"3.2.0",setup:function(){if(this.addEventListener)for(var e=t.length;e;)this.addEventListener(t[--e],i,{passive:!1});else this.onmousewheel=i;r.data(this,"mousewheel-line-height",c.getLineHeight(this)),r.data(this,"mousewheel-page-height",c.getPageHeight(this))},teardown:function(){if(this.removeEventListener)for(var e=t.length;e;)this.removeEventListener(t[--e],i,!1);else this.onmousewheel=null;r.removeData(this,"mousewheel-line-height"),r.removeData(this,"mousewheel-page-height")},getLineHeight:function(e){var t=r(e),n=t["offsetParent"in r.fn?"offsetParent":"parent"]();return n.length||(n=r("body")),parseInt(n.css("fontSize"),10)||parseInt(t.css("fontSize"),10)||16},getPageHeight:function(e){return r(e).height()},settings:{adjustOldDeltas:!0,normalizeOffset:!0}};function i(e){var t,n,i,o,l=e||window.event,s=w.call(arguments,1),h=0,a=0,u=0;if((e=r.event.fix(l)).type="mousewheel","detail"in l&&(u=-1*l.detail),"wheelDelta"in l&&(u=l.wheelDelta),"wheelDeltaY"in l&&(u=l.wheelDeltaY),"wheelDeltaX"in l&&(a=-1*l.wheelDeltaX),"axis"in l&&l.axis===l.HORIZONTAL_AXIS&&(a=-1*u,u=0),h=0===u?a:u,"deltaY"in l&&(h=u=-1*l.deltaY),"deltaX"in l&&(a=l.deltaX,0===u&&(h=-1*a)),0!==u||0!==a)return 1===l.deltaMode?(h*=n=r.data(this,"mousewheel-line-height"),u*=n,a*=n):2===l.deltaMode&&(h*=i=r.data(this,"mousewheel-page-height"),u*=i,a*=i),t=Math.max(Math.abs(u),Math.abs(a)),(!d||t<d)&&g(l,d=t)&&(d/=40),g(l,t)&&(h/=40,a/=40,u/=40),h=Math[1<=h?"floor":"ceil"](h/d),a=Math[1<=a?"floor":"ceil"](a/d),u=Math[1<=u?"floor":"ceil"](u/d),c.settings.normalizeOffset&&this.getBoundingClientRect&&(o=this.getBoundingClientRect(),e.offsetX=e.clientX-o.left,e.offsetY=e.clientY-o.top),e.deltaX=a,e.deltaY=u,e.deltaFactor=d,e.deltaMode=0,s.unshift(e,h,a,u),f&&window.clearTimeout(f),f=window.setTimeout(m,200),(r.event.dispatch||r.event.handle).apply(this,s)}function m(){d=null}function g(e,t){return c.settings.adjustOldDeltas&&"mousewheel"===e.type&&t%120==0}r.fn.extend({mousewheel:function(e){return e?this.on("mousewheel",e):this.trigger("mousewheel")},unmousewheel:function(e){return this.off("mousewheel",e)}})});