forked from nolimits4web/swiper
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathidangerous.swiper-1.2.min.js
15 lines (13 loc) · 9.02 KB
/
idangerous.swiper-1.2.min.js
1
2
3
4
5
6
7
8
9
10
11
12
13
/*
* Swiper 1.2 - Mobile Touch Slider
* http://www.idangero.us/sliders/swiper/
*
* Copyright 2012, Vladimir Kharlampidi
* The iDangero.us
* http://www.idangero.us/
*
* Licensed under GPL & MIT
*
* Updated on: March 31, 2012
*/
Swiper=function(d,b){if(document.querySelectorAll&&0!=document.querySelectorAll(d).length){var a=this;a.touches={};a.positions={};a.times={};a.isTouched=!1;a.activeSlide=0;a.use3D=a.isSupport3D();b=b||{};a.params=b;b.mode=b.mode||"horizontal";b.ratio=b.ratio||1;b.speed=b.speed||300;b.freeMode=b.freeMode||!1;b.freeModeFluid=b.freeModeFluid||!1;b.simulateTouch=!1===b.simulateTouch?!1:!0;b.followFinger=!1===b.followFinger?!1:!0;b.autoPlay=b.autoPlay||!1;b.onlyExternal=b.onlyExternal||!1;b.createPagination=!1===b.createPagination?!1:!0;b.pagination=b.pagination||!1;b.slideClass=b.slideClass||"swiper-slide";b.wrapperClass=b.wrapperClass||"swiper-wrapper";b.paginationClass=b.paginationClass||"swiper-pagination-switch";b.paginationActiveClass=b.paginationActiveClass||"swiper-active-switch";var f=document.querySelectorAll(d+" ."+b.wrapperClass).item(0),g,e,i,j,l,h;a.wrapper=f;g="horizontal"==b.mode;var m=a.isSupportTouch()||!b.simulateTouch?"touchstart":"mousedown",r=a.isSupportTouch()||!b.simulateTouch?"touchmove":"mousemove",s=a.isSupportTouch()||!b.simulateTouch?"touchend":"mouseup";a.init=function(){var a=document.querySelectorAll(d).item(0).offsetWidth,k=document.querySelectorAll(d).item(0).offsetHeight;e=g?a:k;i=document.querySelectorAll(d+" ."+b.slideClass).length;for(var h=0;h<i;h++)document.querySelectorAll(d+" ."+b.slideClass).item(h).style.width=a+"px",document.querySelectorAll(d+" ."+b.slideClass).item(h).style.height=k+"px";a*=i;k*=i;j=g?a:k;g?f.style.width=a+"px":f.style.height=k+"px"};a.init();if(b.pagination&&b.createPagination){for(var n="",o=0;o<i;o++){var q="";0==o&&(q=" "+b.paginationActiveClass);n+='<span class="'+b.paginationClass+""+q+'"></span>'}document.querySelectorAll(b.pagination)[0].innerHTML=n}window.addEventListener("resize",function(){a.init()},!1);var p;a.startAutoPlay=function(){b.autoPlay&&(p=setInterval(function(){var b=a.activeSlide+1;b==i&&(b=0);a.swipeTo(b)},b.autoPlay))};a.stopAutoPlay=function(){p&&clearInterval(p)};b.autoPlay&&a.startAutoPlay();f.addEventListener(m,function(c){if(a.isTouched||b.onlyExternal)return!1;a.isTouched=!0;if(!a.isSupportTouch()||1==c.targetTouches.length)if(a.isSupportTouch()||c.preventDefault(),a.touches.startX=a.touches.currentX=a.isSupportTouch()?c.targetTouches[0].pageX:c.pageX,a.touches.startY=a.touches.currentY=a.isSupportTouch()?c.targetTouches[0].pageY:c.pageY,a.touches.start=a.touches.current=g?a.touches.startX:a.touches.startY,a.setTransition(0),a.positions.start=a.positions.current=g?a.getTranslate("x"):a.getTranslate("y"),g?a.setTransform(a.positions.start,0,0):a.setTransform(0,a.positions.start,0),a.times.start=(new Date).getTime(),h=void 0,b.onTouchStart)b.onTouchStart(a)},!1);m=a.isSupportTouch()?f:document;m.addEventListener(r,function(c){if(a.isTouched&&!b.onlyExternal)a:{if(a.isSupportTouch()&&("undefined"==typeof h&&g&&(h=!!(h||Math.abs(c.targetTouches[0].pageY-a.touches.startY)>Math.abs(c.targetTouches[0].pageX-a.touches.startX))),"undefined"==typeof h&&!g&&(h=!!(h||Math.abs(c.targetTouches[0].pageY-a.touches.startY)<Math.abs(c.targetTouches[0].pageX-a.touches.startX))),h))break a;b.autoPlay&&a.stopAutoPlay();if(!a.isSupportTouch()||1==c.touches.length){c.preventDefault();if(b.onTouchMove)b.onTouchMove(a);a.touches.current=g?a.isSupportTouch()?c.targetTouches[0].pageX:c.pageX:a.isSupportTouch()?c.targetTouches[0].pageY:c.pageY;a.positions.current=(a.touches.current-a.touches.start)*b.ratio+a.positions.start;if(0<a.positions.current&&(!b.freeMode||b.freeModeFluid))c=(2*e-a.positions.current)/e/2,a.positions.current=0.5>c?e/2:a.positions.current*c;if(Math.abs(a.positions.current)>j-e&&(!b.freeMode||b.freeModeFluid)){var c=(j-e+a.positions.current)/(j-e)/2,c=a.positions.current-e*c*(i-1),d=-(j-e/2);a.positions.current=c<d?d:c}b.followFinger&&(g?a.setTransform(a.positions.current,0,0):a.setTransform(0,a.positions.current,0),b.freeMode&&a.updateActiveSlide(a.positions.current))}}},!1);m.addEventListener(s,function(){if(!b.onlyExternal&&a.isTouched){a.isTouched=!1;a.positions.current||(a.positions.current=a.positions.start);g?a.setTransform(a.positions.current,0,0):a.setTransform(0,a.positions.current,0);a.times.end=(new Date).getTime();a.touches.diff=a.touches.current-a.touches.start;a.touches.abs=Math.abs(a.touches.diff);a.positions.diff=a.positions.current-a.positions.start;a.positions.abs=Math.abs(a.positions.diff);var c=a.positions.diff,d=a.positions.abs;5>d&&a.swipeReset();var f=j-e;0<a.positions.current?a.swipeReset("-1"):Math.abs(a.positions.current)>f?a.swipeReset("+1"):b.freeMode?(300>a.times.end-a.times.start&&b.freeModeFluid&&(c=a.positions.current+2*a.touches.diff,c<-1*f&&(c=-f),0<c&&(c=0),g?a.setTransform(c,0,0):a.setTransform(0,c,0),a.setTransition(2*(a.times.end-a.times.start)),a.updateActiveSlide(c)),(!b.freeModeFluid||300<=a.times.end-a.times.start)&&a.updateActiveSlide(a.positions.current)):(l=0>c?"toNext":"toPrev","toNext"==l&&300>=a.times.end-a.times.start&&(30>d?a.swipeReset():a.swipeNext()),"toPrev"==l&&300>=a.times.end-a.times.start&&(30>d?a.swipeReset():a.swipePrev()),"toNext"==l&&300<a.times.end-a.times.start&&(d>=0.5*e?a.swipeNext():a.swipeReset()),"toPrev"==l&&300<a.times.end-a.times.start&&(d>=0.5*e?a.swipePrev():a.swipeReset()));if(b.onTouchEnd)b.onTouchEnd(a)}},!1);a.swipeNext=function(){a.positions.current||(a.positions.current=-e);var c=Math.ceil(-a.positions.current/e)*e;c!=j&&(g?a.setTransform(-c,0,0):a.setTransform(0,-c,0),a.setTransition(b.speed),a.touches.start=a.touches.current,a.positions.current-=e,a.updateActiveSlide(-c),b.onSlideChange&&a.transitionEnd(b.onSlideChange))};a.swipePrev=function(){var c=g?a.getTranslate("x"):a.getTranslate("y");if(0!=c){var d=(Math.ceil(-a.positions.current/e)-1)*e;d==-c&&(d-=e,a.positions.current=-d);g?a.setTransform(-d,0,0):a.setTransform(0,-d,0);a.setTransition(b.speed);a.updateActiveSlide(-d);b.onSlideChange&&a.transitionEnd(b.onSlideChange)}};a.swipeReset=function(c){if(b.freeMode&&c&&("-1"===c&&(a.positions.start=0),"+1"===c))a.positions.start=-j+e;c=0>a.positions.current?Math.round(a.positions.current/e)*e:0;c==-j&&(c+=e);"horizontal"==b.mode?a.setTransform(c,0,0):a.setTransform(0,c,0);a.setTransition(b.speed);a.updateActiveSlide(c)};a.swipeTo=function(c){0>c||c>i-1||(c=-c*e,a.setTransform(c,0,0),a.setTransition(b.speed),a.updateActiveSlide(c))};a.updateActiveSlide=function(c){a.activeSlide=Math.round(-c/e);a.activeSlide==i&&(a.activeSlide=i-1);0>a.activeSlide&&(a.activeSlide=0);b.pagination&&a.updatePagination()};a.updatePagination=function(){var c=document.querySelectorAll(b.pagination+" ."+b.paginationActiveClass).item(0);c&&(0<=c.className.indexOf("active")&&(c.className=c.className.replace(b.paginationActiveClass,"")),document.querySelectorAll(b.pagination+" ."+b.paginationClass).item(a.activeSlide).className=document.querySelectorAll(b.pagination+" ."+b.paginationClass).item(a.activeSlide).className+" "+b.paginationActiveClass)}}};Swiper.prototype={transitionEnd:function(d){var b=this,a=b.wrapper,f=["webkitTransitionEnd","transitionend","oTransitionEnd","MSTransitionEnd"];if(d)for(var g=function(){d(b);for(var e=0;e<f.length;e++)a.removeEventListener(f[e],g,!1)},e=0;e<f.length;e++)a.addEventListener(f[e],g,!1)},isSupportTouch:function(){return"ontouchstart"in window||window.DocumentTouch&&document instanceof DocumentTouch},isSupport3D:function(){var d=document.createElement("div");d.id="test3d";var b=!1;"webkitPerspective"in d.style&&(b=!0);"MozPerspective"in d.style&&(b=!0);"OPerspective"in d.style&&(b=!0);"MsPerspective"in d.style&&(b=!0);"perspective"in d.style&&(b=!0);if(b&&"webkitPerspective"in d.style){var a=document.createElement("style");a.textContent="@media (-webkit-transform-3d), (transform-3d), (-moz-transform-3d), (-o-transform-3d), (-ms-transform-3d) {#test3d{height:5px}}";document.getElementsByTagName("head")[0].appendChild(a);document.body.appendChild(d);b=5===d.offsetHeight;a.parentNode.removeChild(a);d.parentNode.removeChild(d)}return b},getTranslate:function(d){var b=this.wrapper,b=window.WebKitCSSMatrix?new WebKitCSSMatrix(window.getComputedStyle(b,null).webkitTransform):window.getComputedStyle(b,null).MozTransform||window.getComputedStyle(b,null).OTransform||window.getComputedStyle(b,null).MsTransform||window.getComputedStyle(b,null).transform;if("x"==d)var a=parseInt(b.toString().split(",")[4],10);"y"==d&&(a=parseInt(b.toString().split(",")[5],10));return a},setTransform:function(d,b,a){var f=this.wrapper.style,d=d||0,b=b||0;f.webkitTransform=this.use3D?f.MsTransform=f.MozTransform=f.OTransform=f.transform="translate3d("+d+"px, "+b+"px, "+(a||0)+"px)":f.MsTransform=f.MozTransform=f.OTransform=f.transform="translate("+d+"px, "+b+"px)"},setTransition:function(d){var b=this.wrapper.style;b.webkitTransitionDuration=b.MsTransitionDuration=b.MozTransitionDuration=b.OTransitionDuration=b.transitionDuration=d/1E3+"s"}};if(window.jQuery||window.Zepto)(function(d){d.fn.swiper=function(b){return new Swiper(d(this).selector,b)}})(window.jQuery||window.Zepto);