metadin
clone your own copy | download snapshot

Snapshots | iceberg

Inside this repository

basic-jquery-slider.min.js
application/javascript

Download raw (4.0 KB)

(function(a){a.fn.bjqs=function(c){var x={},g={width:700,height:300,animation:"fade",animationDuration:450,automatic:true,rotationSpeed:4000,hoverPause:true,showControls:true,centerControls:true,nextText:"Next",prevText:"Prev",showMarkers:true,centerMarkers:true,nextImageLoaded:function(E,D){},keyboardNav:true,mouseNav:false,useCaptions:true},t=this,v=t.find(".bjqs"),p=v.children("li"),A=p.length,m=false,z=false,o=0,l=1,n=0,h=p.eq(o),f="forward",s="backward";x=a.extend({},g,c);p.css({height:x.height,width:x.width});v.css({height:x.height,width:x.width});t.css({height:x.height,width:x.width});p.addClass("bjqs-slide");if(x.showControls&&A>1){var q=a('<ul class="bjqs-controls"></ul>'),w=a('<li><a href="#" class="bjqs-next" class="controls">'+x.nextText+"</a></li>"),e=a('<li><a href="#" class="bjqs-prev" class="controls">'+x.prevText+"</a></li>");w.click(function(D){D.preventDefault();if(!m){k(f,false)}});e.click(function(D){D.preventDefault();if(!m){k(s,false)}});w.appendTo(q);e.appendTo(q);q.appendTo(t);if(x.centerControls){var B=w.children("a"),d=(t.height()-B.height())/2;w.children("a").css("top",d).show();e.children("a").css("top",d).show()}}if(x.showMarkers&&A>1){var j=a('<ol class="bjqs-markers"></ol>'),i,u,d;a.each(p,function(D,E){if(x.animType==="slide"){if(D!==0&&D!==A-1){i=a('<li><a href="#">'+D+"</a></li>")}}else{D++;i=a('<li><a href="#">'+D+"</a></li>")}i.click(function(F){F.preventDefault();if(!a(this).hasClass("active-marker")&&!m){k(false,D)}});i.appendTo(j)});u=j.children("li");u.eq(o).addClass("active-marker");j.appendTo(t);if(x.centerMarkers){d=(x.width-j.width())/2;j.css("left",d)}}if(x.keyboardNav&&A>1){a(document).keyup(function(D){if(!z){clearInterval(r);z=true}if(!m){if(D.keyCode===39){D.preventDefault();k(f,false)}else{if(D.keyCode===37){D.preventDefault();k(s,false)}}}if(z&x.automatic){r=setInterval(function(){k(f)},x.rotationSpeed);z=false}})}if(x.mouseNav&&A>1){var C=a('<div class="bjqs-mouse-nav left"></div>');var b=a('<div class="bjqs-mouse-nav right"></div>');C.click(function(){k(s,false)}).css("height",x.height);b.click(function(){k(f,false)}).css("height",x.height);t.css("position","relative").append(C,b)}if(x.useCaptions){a.each(p,function(E,F){var G=a(F);var D=G.children("img:first-child");var H=D.attr("title");if(H){var I=a('<p class="bjqs-caption">'+H+"</p>");I.appendTo(G)}})}if(x.hoverPause&&x.automatic){t.hover(function(){if(!z){clearInterval(r);z=true}},function(){if(z){r=setInterval(function(){k(f)},x.rotationSpeed);z=false}})}if(x.animation==="slide"&&A>1){$first=p.eq(0);$last=p.eq(A-1);$first.clone().addClass("clone").removeClass("slide").appendTo(v);$last.clone().addClass("clone").removeClass("slide").prependTo(v);p=v.children("li");A=p.length;$wrapper=a('<div class="bjqs-wrapper"></div>').css({width:x.width,height:x.height,overflow:"hidden",position:"relative"});v.css({width:x.width*A,left:-x.width});p.css({"float":"left",position:"relative",display:"list-item"});$wrapper.prependTo(t);v.appendTo($wrapper)}var y=function(D){if(x.animation==="fade"){if(D===f){!h.next().length?n=0:n++}else{if(D===s){!h.prev().length?n=A-1:n--}}}if(x.animation==="slide"){if(D===f){n=l+1}if(D===s){n=l-1}}return n};if(x.automatic&&A>1){var r=setInterval(function(){k(f,false)},x.rotationSpeed)}p.eq(o).show();v.show();x.nextImageLoaded(0,A);var k=function(E,D){if(!m){if(E){n=y(E)}else{if(D&&x.animation==="fade"){n=D-1}else{n=D}}m=true;if(x.animation==="fade"){if(x.showMarkers){u.eq(o).removeClass("active-marker");u.eq(n).addClass("active-marker")}w=p.eq(n);h.fadeOut(x.animationDuration);w.fadeIn(x.animationDuration,function(){h.hide();o=n;h=w;m=false})}else{if(x.animation==="slide"){if(x.showMarkers){u.eq(l-1).removeClass("active-marker");if(n===A-1){u.eq(0).addClass("active-marker")}else{if(n===0){u.eq(A-3).addClass("active-marker")}else{u.eq(n-1).addClass("active-marker")}}}v.animate({left:-n*x.width},x.animationDuration,function(){if(n===0){l=A-2;v.css({left:-l*x.width})}else{if(n===A-1){l=1;v.css({left:-x.width})}else{l=n}}m=false})}}}x.nextImageLoaded(n,A)};return this}})(jQuery);