-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathjquery.queueslider.min.js
1 lines (1 loc) · 6.37 KB
/
jquery.queueslider.min.js
1
!function(a){var b=function(b,c){var d=this,e=a(b),f=a(".queue",e),g=a(".queue > li",e),h=[],i={},j={},k={initialized:!1,playing:!1,busy:!1,count:0,index:{active:0,previous:0},viewport:{width:a(window).width()}},l=a.extend({},a.fn.queueSlider.defaults,c),m=function(){k.initialized||(f=a(".queue",e),g=a(".queue > li",e),k.count=g.length,k.count>1&&(j.available=function(){var a=document.createElement("div"),b=["WebkitPerspective","MozPerspective","OPerspective","msPerspective"];for(var c in b)if(void 0!==a.style[b[c]])return j.vendor_prefix="-"+b[c].replace("Perspective","").toLowerCase(),j.transform=j.vendor_prefix+"-transform",j.transform_duration=j.vendor_prefix+"-transition-duration",!0;return!1}(),l.touchEnabled&&y(),"horizontal"===l.mode&&(f.prepend(g.last().clone().addClass("qs-clone")),f.append(g.first().clone().removeClass("active").addClass("qs-clone")),k.index.active=k.index.previous=1,g=a(".queue > li",e),k.count=g.length),f.data("origStyle",f.attr("style")),g.each(function(){var b=a(this);b.data("origStyle",b.attr("style"))}),q(),"horizontal"===l.mode&&w(-p(),"reset",0),l.autoHeight&&(f.css("overflow","hidden"),r()),-1!==l.fade&&g.not(":eq("+k.index.active+")").find("img").fadeTo(0,l.fade),l.buttons&&(e.append('<button class="qs-previous" rel="-1">'+l.previous+'</button><button class="qs-next" rel="1">'+l.next+"</button>"),a("button",e).bind("click.queueSlider",function(){return k.busy||(k.busy=!0,clearInterval(k.play),s(parseInt(a(this).attr("rel"),10))),!1})),l.keyboardButtons&&a(document).bind("keydown.queueSlider",function(a){switch(a.which){case 37:d.previousSlide();break;case 39:d.nextSlide();break;default:return}a.preventDefault()}),setTimeout(n,l.delay),a(window).bind("resize.queueSlider",o)),k.initialized=!0)},n=function(){e.addClass("initialized"),g.eq(k.index.active).addClass("active"),0!==l.speed&&(k.play=setInterval(function(){k.busy||(k.busy=!0,s(l.direction))},l.speed))},o=function(){k.busy=!0,k.viewport.width=a(window).width(),q(),r(),"horizontal"===l.mode&&w(-p(),"reset",0),k.busy=!1},p=function(){var a=0,b=0;switch(l.alignMode){case"center":b=(k.viewport.width-h[k.index.active].w)/-2;break;case"right":b=k.viewport.width-h[k.index.active].w}for(a=0;a<k.index.active;a++)b+=h[a].w;return b},q=function(){var b,c=0,d=0;g.each(function(e){var f=a(this);if(l.offScreen){void 0===a(this).data("origStyle")?f.removeAttr("style"):f.attr("style",a(this).data("origStyle"));var g=f.outerWidth(!0),i=k.viewport.width-g;h[e]={w:g+(i>0?i:0)},c+=h[e].w,f.css("width",h[e].w+"px")}else h[e]={w:f.outerWidth(!0)},c+=h[e].w;"fade"===l.mode&&f.css({position:"absolute",top:0,left:0}),b&&(h[e-1].h=b.outerHeight(!0),h[e-1].h>d&&(d=h[e-1].h)),b=f}),b&&(h[k.count-1].h=b.outerHeight(!0),h[k.count-1].h>d&&(d=h[k.count-1].h)),f.css("horizontal"===l.mode?{width:c,height:d}:{width:"100%",height:d})},r=function(){l.autoHeight&&e.stop().animate({height:h[k.index.active].h},Math.floor(l.transitionSpeed/3))},s=function(a){k.index.active+=a,k.index.active<0?k.index.active=k.count-1:k.index.active>=k.count&&(k.index.active=0),u()},t=function(a){a>=k.count||0>a||(k.index.active=a,u())},u=function(){e.trigger("slideStart",k.index.active),r(),v(k.index.active,k.index.previous),"horizontal"===l.mode&&w(-p(),"slide")},v=function(a,b,c){-1!==l.fade?(c=void 0===c?l.transitionSpeed:c,g.eq(a).addClass("active").find("img").fadeTo(c,1),g.eq(b).removeClass("active").find("img").fadeTo(c,l.fade,function(){"fade"===l.mode&&x()})):(g.eq(a).addClass("active"),g.eq(b).removeClass("active"))},w=function(a,b,c){if(j.available){c=void 0!==c?c:l.transitionSpeed/1e3;var d={};"reset"===b&&(c=0),d[j.transform_duration]=c+"s",d[j.transform]="translate3d("+a+"px, 0, 0)",f.css(d),"slide"===b&&setTimeout(function(){k.busy&&x()},1e3*c+1)}else"slide"===b?f.animate({left:a},{duration:l.transitionSpeed,complete:x}):f.css("left",a)},x=function(){"horizontal"===l.mode&&(k.index.active===k.count-1?(k.index.active=1,v(1,k.count-1,0),w(-p(),"reset",0)):0===k.index.active&&(k.index.active=k.count-2,v(k.count-2,0,0),w(-p(),"reset",0))),k.index.previous=k.index.active,k.busy=!1,e.trigger("slideEnd",k.index.active)},y=function(){i={start:{x:0,y:0},end:{x:0,y:0}},e.bind("touchstart.queueSlider",z)},z=function(a){k.busy?a.preventDefault():(i.original_position=f.position(),i.start.x=a.originalEvent.changedTouches[0].pageX,i.start.y=a.originalEvent.changedTouches[0].pageY,e.bind("touchmove.queueSlider",A),e.bind("touchend.queueSlider",B))},A=function(a){var b=Math.abs(a.originalEvent.changedTouches[0].pageX-i.start.x),c=Math.abs(a.originalEvent.changedTouches[0].pageY-i.start.y),d=a.originalEvent.changedTouches[0].pageX-i.start.x;3*b>c&&a.preventDefault(),"horizontal"===l.mode&&w(i.original_position.left+d,"reset",0)},B=function(a){e.unbind("touchmove.queueSlider"),i.end.x=a.originalEvent.changedTouches[0].pageX,i.end.y=a.originalEvent.changedTouches[0].pageY;var b=i.end.x-i.start.x;Math.abs(b)>=l.swipeThreshold?0>b?d.nextSlide():d.previousSlide():"horizontal"===l.mode&&w(i.original_position.left,"reset",0),e.unbind("touchend.queueSlider")};return d.getState=function(a){var b,c=k,d=a.split(".");for(b=0;b<d.length;b++){if(!c.hasOwnProperty(d[b]))return void 0;c=c[d[b]]}return c},d.pause=function(){clearInterval(k.play)},d.nextSlide=function(){k.busy||(k.busy=!0,clearInterval(k.play),s(1))},d.previousSlide=function(){k.busy||(k.busy=!0,clearInterval(k.play),s(-1))},d.goToSlide=function(a){k.busy||(k.busy=!0,clearInterval(k.play),t(a))},d.destroy=function(){k.initialized&&(k.initialized=!1,k.busy=!0,k.index.active=k.index.previous=1,clearInterval(k.play),e.unbind(".queueSlider"),void 0!==f.data("origStyle")?f.attr("style",f.data("origStyle")):f.removeAttr("style"),g.filter(".qs-clone").remove(),g.each(function(){void 0!==a(this).data("origStyle")?a(this).attr("style",a(this).data("origStyle")):a(this).removeAttr("style")}),g.find("img").fadeTo(0,1),l.buttons&&a(".qs-previous, .qs-next",e).remove(),a(window).unbind(".queueSlider"),k.busy=!1)},d.rebuild=function(b){void 0!==b&&(l=a.extend({},a.fn.queueSlider.defaults,b)),d.destroy(),m()},m(),d};a.fn.queueSlider=function(c){return this.each(function(){var d=a(this);if(d.data("queueslider"))return d.data("queueslider");var e=new b(this,c);d.data("queueslider",e)})},a.fn.queueSlider.defaults={mode:"horizontal",alignMode:"center",delay:0,fade:.3,transitionSpeed:700,speed:7e3,direction:1,offScreen:!1,autoHeight:!1,touchEnabled:!0,swipeThreshold:50,buttons:!0,keyboardButtons:!0,previous:"Previous",next:"Next"}}(jQuery);