UNPKG

small-swiper

Version:

swiper js javascript vue react angular

1 lines 10.7 kB
!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.SmallSwiper=e():t.SmallSwiper=e()}(window,function(){return function(t){var e={};function i(s){if(e[s])return e[s].exports;var n=e[s]={i:s,l:!1,exports:{}};return t[s].call(n.exports,n,n.exports,i),n.l=!0,n.exports}return i.m=t,i.c=e,i.d=function(t,e,s){i.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:s})},i.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},i.t=function(t,e){if(1&e&&(t=i(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var s=Object.create(null);if(i.r(s),Object.defineProperty(s,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var n in t)i.d(s,n,function(e){return t[e]}.bind(null,n));return s},i.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return i.d(e,"a",e),e},i.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},i.p="",i(i.s=0)}([function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var s=i(1);e.default=s.default},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var s=Date.now||function(){return+new Date},n=function(){function t(t){var e=this;this.root=t.root,this.direction=t.direction,this.loop=t.loop,this.auto=t.auto,this.delayed=t.delayed,this.effect=t.effect,this.startTime=0,this.callBack=t.callBack,this.startingPoint=0,this.isTracking=!1,this.captureClick=!1,this.disabledHandSlideing=!!t.disabledHand,this.timer=null,this.defaultIndex=this.loop?-1:0,this.slider=this.root.children[0],this.children=this.slider.children;var i=this.children;this.length=i.length;this.length;var s=i[0].getBoundingClientRect(),n=s.width,a=s.height;this.scaleSize="horizontal"===this.direction?n:a,this.initSetIndex(t.index),this.initFromEffect(this.effect),this.stopDraggable(),this.auto&&(this.timer=this.setInterval()),this.will=!1,this._start=function(t){e.start(t)},this._move=function(t){e.move(t)},this._end=function(t){e.end(t)},this._closeDefault=function(t){e.closeDefault(t)},this.slider.addEventListener("touchstart",this._start,this.will),this.slider.addEventListener("touchmove",this._move,this.will),this.slider.addEventListener("touchend",this._end,this.will),this.slider.addEventListener("mousedown",this._start,this.will),this.slider.addEventListener("mousemove",this._move,this.will),this.slider.addEventListener("mouseup",this._end,this.will),this.slider.addEventListener("click",this._closeDefault,!0)}return t.prototype.closeDefault=function(t){var e=t||event;this.captureClick&&(e.preventDefault(),e.stopPropagation())},t.prototype.initFromEffect=function(t){switch(t){case"slide":this.ifEffectSlide();break;case"fade":this.ifEffectFade()}},t.prototype.ifEffectSlide=function(){var t=this.children,e=this.length;if(this.loop){var i=t[0].cloneNode(!0),s=t[e-1].cloneNode(!0);this.slider.appendChild(i),this.slider.insertBefore(s,t[0])}},t.prototype.ifEffectFade=function(){for(var t=this.children,e=t[0].getBoundingClientRect().height,i=this.length,s=0;s<i;s++)t[s].style.transform="translate3d(0,"+-s*e+"px,0)";this.fadeMove(this.index,1)},t.prototype.initSetIndex=function(t){t=Math.min(Math.abs(t),this.length-1),"slide"===this.effect&&(this.loop?this.defaultIndex=-(t+1):this.defaultIndex=-t,this.slideMove(this.defaultIndex*this.scaleSize)),this.index=t},t.prototype.stopDraggable=function(){for(var t=this.root.getElementsByTagName("img"),e=0;e<t.length;e++)t[e].setAttribute("draggable","false")},t.prototype.setInterval=function(){return window.setInterval(this.aotoplay.bind(this),this.delayed)},t.prototype.clear=function(){window.clearInterval(this.timer)},t.prototype.start=function(t){var e=t||event;"mousedown"===e.type&&e.preventDefault();var i=e.touches,n=i?i[0]:e;this.startingPoint="horizontal"===this.direction?n.clientX:n.clientY,this.startTime=s(),this.clear(),this.isTracking=!0,this.captureClick=!1,this.disabledHandSlideing},t.prototype.move=function(t){if(this.isTracking){var e=t||event;if("mousemove"===e.type&&(this.captureClick=!0),e.preventDefault(),!this.disabledHandSlideing){var i=e.changedTouches,s=i?i[0]:e,n="horizontal"===this.direction?s.clientX-this.startingPoint:s.clientY-this.startingPoint;this.clear();var a=Math.max(0,1-Math.abs(n/this.scaleSize));this.index;switch(this.effect){case"slide":this.moveFun(n+this.defaultIndex*this.scaleSize,n);break;case"fade":this.fadeProcess(n,a)}}}},t.prototype.end=function(t){var e=this;if(this.isTracking&&(this.isTracking=!1,!this.disabledHandSlideing)){var i=t||event,n=i.changedTouches,a=n?n[0]:i,h="horizontal"===this.direction?a.clientX-this.startingPoint:a.clientY-this.startingPoint,l=s()-this.startTime,o=Math.abs(h)>this.scaleSize/2||l<300,d=Math.max(0,1-Math.abs(h/this.scaleSize)),r=this.loop,f=this.index,c=this.length,u=this.length-1,v=this.length+1;if(0!==Math.abs(h))if("fade"!==this.effect)if(o){var x=this.defaultIndex,p=31.25;if(h>0)if(this.loop){if(this.defaultIndex+=1,this.defaultIndex>0&&(this.defaultIndex=0),x>0&&this.defaultIndex>0)return}else this.defaultIndex<0?this.defaultIndex+=1:(h/=3,p=20);if(h<0)if(this.loop){if(this.defaultIndex-=1,this.defaultIndex<=-v&&(this.defaultIndex=-v,this.slideMove(this.defaultIndex*this.scaleSize)),x<=-v&&this.defaultIndex<=-v)return}else Math.abs(this.defaultIndex)<u?this.defaultIndex-=1:(h/=3,p=20);this.numericalConversion(this.defaultIndex);var m=h+x*this.scaleSize,I=this.defaultIndex*this.scaleSize;this.startMove(m,I,p).then(function(){r&&(e.defaultIndex<=-v&&(e.defaultIndex=-1,e.slideMove(e.defaultIndex*e.scaleSize)),e.defaultIndex>=0&&(e.defaultIndex=-c,e.slideMove(e.defaultIndex*e.scaleSize))),e.auto&&(e.clear(),e.timer=e.setInterval())})}else{p=10;if(!this.loop){var g=this.defaultIndex*this.scaleSize+h;g>=0?h/=3:g<=this.scaleSize*-u&&(h/=3)}I=(m=this.defaultIndex*this.scaleSize+h)-h;this.startMove(m,I,p).then(function(){e.auto&&(e.clear(),e.timer=e.setInterval())})}else if(o){var y=this.setGetIndex(h),M=r?f:null;this.startMove(1-d,1,.05,y,M).then(function(t){e.auto&&(e.clear(),e.timer=e.setInterval())})}else{y=this.index;h<0?(y+=1)>u&&(y=0):(y-=1)<0&&(y=u),this.startMove(d,1,.05,this.index,y).then(function(t){e.auto&&(e.clear(),e.timer=e.setInterval())})}}},t.prototype.fadeProcess=function(t,e){var i=this.length-1,s=this.index,n=this.index;t<0?(n+=1)>i&&(n=0):(n-=1)<0&&(n=i),this.fadeMove(s,e,n)},t.prototype.setGetIndex=function(t){var e=this.loop,i=this.index;return t>0&&(this.index-=1,this.index<0&&(this.index=e?this.length-1:0)),t<0&&(this.index+=1,this.index>this.length-1&&(this.index=e?0:this.length-1)),i===this.index?this.index:(this.callBack(this.index),this.index)},t.prototype.moveFun=function(t,e){if(this.loop)t>=0?(this.defaultIndex=-this.length,this.slideMove(this.defaultIndex*this.scaleSize)):t<=-(this.length+1)*this.scaleSize?(this.defaultIndex=-1,this.slideMove(this.defaultIndex*this.scaleSize)):this.slideMove(t);else if(t>=0)t/=3,this.slideMove(t);else{var i=this.length-1;t<=this.scaleSize*-i&&(e/=3,t=this.scaleSize*-i+e),this.slideMove(t)}},t.prototype.moveTo=function(t){t=Math.abs(t);var e=this.length+1,i=this.length-1;t>i&&(t=i);var s=this.index,n=this.index=t,a=this.length;if("fade"!==this.effect){if(s!==n)if(this.loop){if(t===i){t=-a;var h=this.defaultIndex*this.scaleSize,l=t*this.scaleSize;this.defaultIndex=t,this.numericalConversion(this.defaultIndex);var o=50*Math.abs(s-Math.abs(this.defaultIndex))<100?100:50*Math.abs(s-Math.abs(this.defaultIndex));return void this.startMove(h,l,o).then(function(){})}if(0===t&&this.defaultIndex===-e)return this.defaultIndex=-1,void this.slideMove(this.defaultIndex*this.scaleSize);t=-t-1;var d=this.defaultIndex*this.scaleSize,r=t*this.scaleSize;this.defaultIndex=t;var f=50*Math.max(Math.abs(s-Math.abs(this.defaultIndex)),3);this.numericalConversion(this.defaultIndex),this.startMove(d,r,f).then(function(){})}else{t=-t;f=50*Math.max(Math.abs(s-Math.abs(t)),3),d=this.defaultIndex*this.scaleSize,r=t*this.scaleSize;this.defaultIndex=t,this.callBack(Math.abs(t)),this.startMove(d,r,f).then(function(){})}}else n===s?this.startMove(0,1,.05,n):(this.callBack(n),this.startMove(0,1,.05,n,s))},t.prototype.numericalConversion=function(t){var e;if(this.loop){switch(t){case-1:case-(this.length+1):e=0;break;case 0:e=this.length-1;break;default:e=Math.abs(t)-1}e!==this.index&&(this.index=e),this.callBack(this.index)}else(e=Math.abs(t))!==this.index&&(this.index=e,this.callBack(this.index))},t.prototype.aotoplay=function(){var t=this;switch(this.effect){case"slide":return function(){var e=t.defaultIndex,i=t.length+1;t.loop?(t.defaultIndex-=1,t.defaultIndex<=-i&&(t.defaultIndex=-i)):(t.defaultIndex-=1,t.defaultIndex<=-t.length&&(t.defaultIndex=0)),t.numericalConversion(t.defaultIndex);var s=50*Math.abs(Math.abs(e)-Math.abs(t.defaultIndex)),n=e*t.scaleSize,a=t.defaultIndex*t.scaleSize;t.startMove(n,a,s).then(function(){t.loop&&t.defaultIndex<=-i&&(t.defaultIndex=-1,t.slideMove(t.defaultIndex*t.scaleSize))})}();case"fade":return function(){var e=t.index;t.index+=1,t.index>t.length-1&&(t.index=0);var i=t.index;t.callBack(i),t.startMove(0,1,.05,i,e).then(function(t){})}()}},t.prototype.slideMove=function(t){var e=this.direction,i=this.slider;"horizontal"===e&&(i.style.transform="translate3d("+t+"px,0,0)"),"vertical"===e&&(i.style.transform="translate3d(0,"+t+"px,0)"),i.style.transition=null},t.prototype.fadeMove=function(t,e,i){void 0===e&&(e=1);for(var s=this.length,n=this.children,a=0;a<s;a++)n[a].style.opacity=0,n[a].style["z-index"]=0;n[t].style.opacity=e,n[t].style["z-index"]=1,"number"==typeof i&&(n[i].style.opacity=1-e)},t.prototype.startMove=function(t,e,i,s,n){var a=this;void 0===i&&(i=30);var h,l=t,o=e,d=new Promise(function(t){return h=t}),r=function(){l<o?(l+=i)>=o&&(l=o):l>o&&(l-=i)<=o&&(l=o),"slide"===a.effect?a.slideMove(l):a.fadeMove(s,l,n),t>e&&(l>o?window.requestAnimationFrame(r):h()),t<e&&(l<o?window.requestAnimationFrame(r):h())};return window.requestAnimationFrame(r),d},t.prototype.destroy=function(){this.clear(),this.slider.removeEventListener("touchstart",this._start,this.will),this.slider.removeEventListener("touchmove",this._move,this.will),this.slider.removeEventListener("touchend",this._end,this.will),this.slider.removeEventListener("mousedown",this._start,this.will),this.slider.removeEventListener("mousemove",this._move,this.will),this.slider.removeEventListener("mouseup",this._end,this.will),this.slider.removeEventListener("click",this._closeDefault,!0)},t}();e.default=n}])});