Amy-Mir / js / home-bundle.min.js
home-bundle.min.js
Raw
"use strict";function Drag(t){this._event={X:0,Y:0,cursorDown:!1,initialX:0,initialY:0,originalEvent:null},this.initialized=!1,this.curDown=!1,this.numListeners=0,this.listeners=[],this.listener=t.listener||window,this.multiplier=t.multiplier||1,this.hasMouseEvent="onmousedown"in document,this.hasTouchEvent="ontouchstart"in document,this.hasTouchWinEvent=navigator.msMaxTouchPoints&&1<navigator.msMaxTouchPoints,this.hasPointerEvent=!!window.navigator.msPointerEnabled,this.isTouch=this.hasTouchEvent||this.hasTouchWinEvent||this.hasPointerEvent,this.msTouchAction=null,this._onDragStart=this._onDragStart.bind(this),this._onDrag=this._onDrag.bind(this),this._onDragEnd=this._onDragEnd.bind(this),this._onMouseLeave=this._onMouseLeave.bind(this),this._notify=this._notify.bind(this)}function round(t,e){e=void 0===e?100:Math.pow(10,e);return Math.round(t*e)/e}function clamp(t,e,i){return Math.min(Math.max(t,e),i)}Drag.prototype.on=function(t){this.initialized||this._addListeners(),this.listeners.push(t),this.numListeners=this.listeners.length},Drag.prototype.off=function(t){this.listeners.splice(t,1),this.numListeners=this.listeners.length,this.numListeners<=0&&this._removeListeners()},Drag.prototype._notify=function(t){var e=this.isTouch&&t.targetTouches?t.targetTouches[0]:t;this._event.X=(e.pageX-this._event.initialX)*this.multiplier,this._event.Y=(e.pageY-this._event.initialY)*this.multiplier,this._event.originalEvent=t,this._event.cursorDown=this.curDown,this._event.initialX=e.pageX,this._event.initialY=e.pageY;for(var i=0;i<this.numListeners;i++)this.listeners[i](this._event)},Drag.prototype._onDrag=function(t){this.curDown&&(t.preventDefault(),this._notify(t))},Drag.prototype._onDragStart=function(t){var e=this.isTouch&&t.targetTouches?t.targetTouches[0]:t;this._event.initialX=e.pageX,this._event.initialY=e.pageY,this.curDown=!0},Drag.prototype._onDragEnd=function(t){this.curDown=!1},Drag.prototype._onMouseLeave=function(t){this._onDragEnd(t)},Drag.prototype._addListeners=function(){this.hasMouseEvent&&(this.listener.addEventListener("mouseleave",this._onMouseLeave),this.listener.addEventListener("mouseup",this._onDragEnd),this.listener.addEventListener("mousedown",this._onDragStart),this.listener.addEventListener("mousemove",this._onDrag)),this.hasTouchEvent&&(this.listener.addEventListener("touchmove",this._onDrag),this.listener.addEventListener("touchend",this._onDragEnd),this.listener.addEventListener("touchstart",this._onDragStart)),this.hasPointerEvent&&this.hasTouchWinEvent&&(this.msTouchAction=this.listener.style.msTouchAction,this.listener.style.msTouchAction="none",this.listener.addEventListener("MSPointerMove",this._onDrag),this.listener.addEventListener("MSPointerUp",this._onDragEnd),this.listener.addEventListener("MSPointerDown",this._onDragStart))},Drag.prototype._removeListeners=function(){this.hasMouseEvent&&(this.listener.removeEventListener("mouseleave",this._onMouseLeave),this.listener.removeEventListener("mouseup",this._onDragEnd),this.listener.removeEventListener("mousedown",this._onDragStart),this.listener.removeEventListener("mousemove",this._onDrag)),this.hasTouchEvent&&(this.listener.removeEventListener("touchmove",this._onDrag),this.listener.removeEventListener("touchend",this._onDragEnd),this.listener.removeEventListener("touchstart",this._onDragStart)),this.hasPointerEvent&&this.hasTouchWinEvent&&(this.msTouchAction&&(this.listener.style.msTouchAction=this.msTouchAction),this.listener.removeEventListener("MSPointerMove",this._onDrag),this.listener.removeEventListener("MSPointerUp",this._onDragEnd),this.listener.removeEventListener("MSPointerDown",this._onDragStart))};var slider=document.querySelector("#slider"),sliderHolder=document.querySelector("#slider__holder"),container=document.querySelector("#slider__items"),vWidth=0,mWidth=0,ease=.09,target=0,current=0,rAF=null,options={listener:slider,multiplier:2},drag=new Drag(options);function calc(t){target+=t.X,clampTarget(),null===rAF&&requestAnimationFrame(moveSlider)}function moveSlider(){var t=target-current;current+=t*ease,container.style.transform="translate3d(".concat(round(current),"px,0,0)"),rAF=0==t.toFixed(2)?null:requestAnimationFrame(moveSlider)}drag.on(calc);var clampTarget=function(){target=clamp(target,-1*(mWidth-vWidth),0)},onResize=function(){vWidth=window.innerWidth,mWidth=container.getBoundingClientRect().width,clampTarget(),rAF=requestAnimationFrame(moveSlider),vWidth<=768&&"container"===sliderHolder.className&&(sliderHolder.className="container__right"),768<vWidth&&"container__right"===sliderHolder.className&&(sliderHolder.className="container")};window.addEventListener("resize",function(){return onResize()}),window.addEventListener("load",function(){return onResize()});