/** * jQuery asHoverScroll v0.3.7 * https://github.com/amazingSurge/jquery-asHoverScroll * * Copyright (c) amazingSurge * Released under the LGPL-3.0 license */ !function(t,e){if("function"==typeof define&&define.amd)define(["jquery"],e);else if("undefined"!=typeof exports)e(require("jquery"));else{var i={exports:{}};e(t.jQuery),t.jqueryAsHoverScrollEs=i.exports}}(this,function(t){"use strict";function e(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}var i=function(t){return t&&t.__esModule?t:{default:t}}(t),n=function(){function t(t,e){for(var i=0;i ul",item:"> li",exception:null,direction:"vertical",fixed:!1,mouseMove:!0,touchScroll:!0,pointerScroll:!0,useCssTransforms:!0,useCssTransforms3d:!0,boundary:10,throttle:20,onEnter:function(){$(this).siblings().removeClass("is-active"),$(this).addClass("is-active")},onLeave:function(){$(this).removeClass("is-active")}},o={};!function(t){var e={transition:{end:{WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd",transition:"transitionend"}},animation:{end:{WebkitAnimation:"webkitAnimationEnd",MozAnimation:"animationend",OAnimation:"oAnimationEnd",animation:"animationend"}}},n=["webkit","Moz","O","ms"],s=(0,i.default)("").get(0).style,o={csstransforms:function(){return Boolean(r("transform"))},csstransforms3d:function(){return Boolean(r("perspective"))},csstransitions:function(){return Boolean(r("transition"))},cssanimations:function(){return Boolean(r("animation"))}},r=function(t,e){var o=!1,r=t.charAt(0).toUpperCase()+t.slice(1);return void 0!==s[t]&&(o=t),o||i.default.each(n,function(t,e){return void 0===s[e+r]||(o="-"+e.toLowerCase()+"-"+r,!1)}),e?o:!!o},a=function(t){return r(t,!0)};o.csstransitions()&&(t.transition=new String(a("transition")),t.transition.end=e.transition.end[t.transition]),o.cssanimations()&&(t.animation=new String(a("animation")),t.animation.end=e.animation.end[t.animation]),o.csstransforms()&&(t.transform=new String(a("transform")),t.transform3d=o.csstransforms3d()),"ontouchstart"in window||window.DocumentTouch&&document instanceof window.DocumentTouch?t.touch=!0:t.touch=!1,window.PointerEvent||window.MSPointerEvent?t.pointer=!0:t.pointer=!1,t.convertMatrixToArray=function(t){return!(!t||"matrix"!==t.substr(0,6))&&t.replace(/^.*\((.*)\)$/g,"$1").replace(/px/g,"").split(/, +/)},t.prefixPointerEvent=function(t){return window.MSPointerEvent?"MSPointer"+t.charAt(9).toUpperCase()+t.substr(10):t}}(o);var r=0,a=function(){function t(n,o){e(this,t),this.element=n,this.$element=(0,i.default)(n),this.options=i.default.extend({},s,o,this.$element.data()),this.$list=(0,i.default)(this.options.list,this.$element),this.classes={disabled:this.options.namespace+"-disabled"},"vertical"===this.options.direction?this.attributes={page:"pageY",axis:"Y",position:"top",length:"height",offset:"offsetTop",client:"clientY",clientLength:"clientHeight"}:"horizontal"===this.options.direction&&(this.attributes={page:"pageX",axis:"X",position:"left",length:"width",offset:"offsetLeft",client:"clientX",clientLength:"clientWidth"}),this._states={},this._scroll={time:null,pointer:null},this.instanceId=++r,this.trigger("init"),this.init()}return n(t,[{key:"init",value:function(){this.initPosition(),this.updateLength(),this.bindEvents()}},{key:"bindEvents",value:function(){var t=this,e=this,n=["enter"],s=[];this.options.mouseMove&&(this.$element.on(this.eventName("mousemove"),i.default.proxy(this.onMove,this)),n.push("mouseenter"),s.push("mouseleave")),this.options.touchScroll&&o.touch&&(this.$element.on(this.eventName("touchstart"),i.default.proxy(this.onScrollStart,this)),this.$element.on(this.eventName("touchcancel"),i.default.proxy(this.onScrollEnd,this))),this.options.pointerScroll&&o.pointer&&(this.$element.on(this.eventName(o.prefixPointerEvent("pointerdown")),i.default.proxy(this.onScrollStart,this)),this.$element.on(this.eventName(o.prefixPointerEvent("pointercancel")),i.default.proxy(this.onScrollEnd,this))),this.$list.on(this.eventName(n.join(" ")),this.options.item,function(){e.is("scrolling")||e.options.onEnter.call(t)}),this.$list.on(this.eventName(s.join(" ")),this.options.item,function(){e.is("scrolling")||e.options.onLeave.call(t)}),(0,i.default)(window).on(this.eventNameWithId("orientationchange"),function(){e.update()}),(0,i.default)(window).on(this.eventNameWithId("resize"),this.throttle(function(){e.update()},this.options.throttle))}},{key:"unbindEvents",value:function(){this.$element.off(this.eventName()),this.$list.off(this.eventName()),(0,i.default)(window).off(this.eventNameWithId())}},{key:"onScrollStart",value:function(t){var e=this,n=this;if(!(this.is("scrolling")||3===t.which||(0,i.default)(t.target).closest(this.options.exception).length>0)){this._scroll.time=(new Date).getTime(),this._scroll.pointer=this.pointer(t),this._scroll.start=this.getPosition(),this._scroll.moved=!1;var s=function(){e.enter("scrolling"),e.trigger("scroll")};this.options.touchScroll&&o.touch&&((0,i.default)(document).on(this.eventName("touchend"),i.default.proxy(this.onScrollEnd,this)),(0,i.default)(document).one(this.eventName("touchmove"),i.default.proxy(function(){this.is("scrolling")||((0,i.default)(document).on(n.eventName("touchmove"),i.default.proxy(this.onScrollMove,this)),s())},this))),this.options.pointerScroll&&o.pointer&&((0,i.default)(document).on(this.eventName(o.prefixPointerEvent("pointerup")),i.default.proxy(this.onScrollEnd,this)),(0,i.default)(document).one(this.eventName(o.prefixPointerEvent("pointermove")),i.default.proxy(function(){this.is("scrolling")||((0,i.default)(document).on(n.eventName(o.prefixPointerEvent("pointermove")),i.default.proxy(this.onScrollMove,this)),s())},this))),(0,i.default)(document).on(this.eventName("blur"),i.default.proxy(this.onScrollEnd,this)),t.preventDefault()}}},{key:"onScrollMove",value:function(t){this._scroll.updated=this.pointer(t);var e=this.distance(this._scroll.pointer,this._scroll.updated);if((Math.abs(this._scroll.pointer.x-this._scroll.updated.x)>10||Math.abs(this._scroll.pointer.y-this._scroll.updated.y)>10)&&(this._scroll.moved=!0),this.is("scrolling")){t.preventDefault();var i=this._scroll.start+e;this.canScroll()&&(i>0?i=0:ithis.listLength-this.containerLength&&(e=this.listLength-this.containerLength),this.updatePosition(-e)}}},{key:"isMatchScroll",value:function(t){return!(this.is("disabled")||!this.canScroll())&&(!this.options.exception||0===(0,i.default)(t.target).closest(this.options.exception).length)}},{key:"canScroll",value:function(){return this.listLength>this.containerLength}},{key:"getContainerLength",value:function(){return this.element[this.attributes.clientLength]}},{key:"getListhLength",value:function(){return this.$list[0][this.attributes.clientLength]}},{key:"updateLength",value:function(){this.containerLength=this.getContainerLength(),this.listLength=this.getListhLength(),this.multiplier=(this.listLength-this.containerLength)/(this.containerLength-2*this.options.boundary)}},{key:"initPosition",value:function(){var t=this.makePositionStyle(0);this.$list.css(t)}},{key:"getPosition",value:function(){var t=void 0;if(this.options.useCssTransforms&&o.transform){if(!(t=(this.options.useCssTransforms3d&&o.transform3d,o.convertMatrixToArray(this.$list.css(o.transform)))))return 0;t="X"===this.attributes.axis?t[12]||t[4]:t[13]||t[5]}else t=this.$list.css(this.attributes.position);return parseFloat(t.replace("px",""))}},{key:"makePositionStyle",value:function(t){var e=void 0,i="0px",n="0px";this.options.useCssTransforms&&o.transform?("X"===this.attributes.axis?i=t+"px":n=t+"px",e=o.transform.toString(),t=this.options.useCssTransforms3d&&o.transform3d?"translate3d("+i+","+n+",0px)":"translate("+i+","+n+")"):e=this.attributes.position;var s={};return s[e]=t,s}},{key:"updatePosition",value:function(t){var e=this.makePositionStyle(t);this.$list.css(e)}},{key:"update",value:function(){this.is("disabled")||(this.updateLength(),this.canScroll()||this.initPosition())}},{key:"eventName",value:function(t){if("string"!=typeof t||""===t)return".asHoverScroll";for(var e=(t=t.split(" ")).length,i=0;i1?e-1:0),n=1;n0}},{key:"enter",value:function(t){void 0===this._states[t]&&(this._states[t]=0),this._states[t]=1}},{key:"leave",value:function(t){this._states[t]=0}},{key:"throttle",value:function(t,e){var i=this,n=Date.now||function(){return(new Date).getTime()},s=void 0,o=void 0,r=void 0,a=void 0,l=0,h=function(){l=n(),s=null,a=t.apply(o,r),s||(o=r=null)};return function(){for(var u=arguments.length,c=Array(u),f=0;fe?(s&&(clearTimeout(s),s=null),l=d,a=t.apply(o,r),s||(o=r=null)):s||(s=setTimeout(h,p)),a}}},{key:"enable",value:function(){this.is("disabled")&&(this.leave("disabled"),this.$element.removeClass(this.classes.disabled),this.bindEvents()),this.trigger("enable")}},{key:"disable",value:function(){this.is("disabled")||(this.enter("disabled"),this.initPosition(),this.$element.addClass(this.classes.disabled),this.unbindEvents()),this.trigger("disable")}},{key:"destroy",value:function(){this.$element.removeClass(this.classes.disabled),this.unbindEvents(),this.$element.data("asHoverScroll",null),this.trigger("destroy")}}],[{key:"setDefaults",value:function(t){i.default.extend(s,i.default.isPlainObject(t)&&t)}}]),t}(),l={version:"0.3.7"},h=i.default.fn.asHoverScroll,u=function(t){for(var e=arguments.length,n=Array(e>1?e-1:0),s=1;s