Rev 538 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
/** loopedSlider 0.5 - jQuery plugin* written by Nathan Searles* http://code.google.com/p/loopedslider/** Copyright (c) 2009 Nathan Searles (http://nathansearles.com/)* Dual licensed under the MIT (MIT-LICENSE.txt)* and GPL (GPL-LICENSE.txt) licenses.** Built for jQuery library* http://jquery.com**//** markup example for $("#loopedSlider").loopedSlider();** <div id="loopedSlider">* <div class="container">* <div class="slides">* <div><img src="01.jpg" alt="" /></div>* <div><img src="02.jpg" alt="" /></div>* <div><img src="03.jpg" alt="" /></div>* <div><img src="04.jpg" alt="" /></div>* </div>* </div>* <a href="#" class="previous">previous</a>* <a href="#" class="next">next</a>* <ul class="pagination">* <li><a href="#">1</a></li>* <li><a href="#">2</a></li>* <li><a href="#">3</a></li>* <li><a href="#">4</a></li>* </ul>* </div>**/(function($) {$.fn.loopedSlider = function(options) {var defaults = {container: '.container',slides: '.slides',pagination: '.pagination',containerClick: true, // Click container for next slideautoStart: 0, // Set to positive number for auto interval and interval timeslidespeed: 300, // Speed of slide animationfadespeed: 300, // Speed of fade animationautoHeight: false // Set to positive number for auto height and animation speed};this.each(function() {var obj = $(this);var o = $.extend(defaults, options);var pagination = $(o.pagination+' li a',obj);var m = 0;var t = 1;var s = $(o.slides,obj).children().size();var w = $(o.slides,obj).children().outerWidth();var p = 0;var u = false;var n = 0;$(o.slides,obj).css({width:(s*w)});$(o.slides,obj).children().each(function(){$(this).css({position:'absolute',left:p,display:'block'});p=p+w;});$(pagination,obj).each(function(){n=n+1;$(this).attr('rel',n);$(pagination.eq(0),obj).parent().addClass('active');});$(o.slides,obj).children(':eq('+(s-1)+')').css({position:'absolute',left:-w});if(o.autoHeight){autoHeight(t);}$('.next',obj).click(function(){if(u===false) {animate('next',true);if(o.autoStart){clearInterval(sliderIntervalID);}} return false;});$('.previous',obj).click(function(){if(u===false) {animate('prev',true);if(o.autoStart){clearInterval(sliderIntervalID);}} return false;});if (o.containerClick) {$(o.container ,obj).click(function(){if(u===false) {animate('next',true);if(o.autoStart){clearInterval(sliderIntervalID);}} return false;});}$(pagination,obj).click(function(){if ($(this).parent().hasClass('active')) {return false;}else {t = $(this).attr('rel');$(pagination,obj).parent().siblings().removeClass('active');$(this).parent().addClass('active');animate('fade',t);if(o.autoStart){clearInterval(sliderIntervalID);}} return false;});if (o.autoStart) {sliderIntervalID = setInterval(function(){if(u===false) {animate('next',true);}}, o.autoStart);}function current(t) {if(t===s+1){t=1;}if(t===0){t=s;}$(pagination,obj).parent().siblings().removeClass('active');$(pagination+'[rel="' + (t) + '"]',obj).parent().addClass('active');};function autoHeight(t) {if(t===s+1){t=1;}if(t===0){t=s;}var getHeight = $(o.slides,obj).children(':eq('+(t-1)+')',obj).outerHeight();$('.container',obj).animate({height: getHeight},o.autoHeight);};function animate(dir,clicked){u = true;switch(dir){case 'next':t = t+1;m = (-(t*w-w));current(t);if(o.autoHeight){autoHeight(t);}$(o.slides,obj).animate({left: m}, o.slidespeed,function(){if (t===s+1) {t = 1;$(o.slides,obj).css({left:0},function(){$(o.slides,obj).animate({left:m})});$(o.slides,obj).children(':eq(0)').css({left: 0});$(o.slides,obj).children(':eq('+(s-1)+')').css({ position:'absolute',left:-w});}if (t===s) $(o.slides,obj).children(':eq(0)').css({left:(s*w)});if (t===s-1) $(o.slides,obj).children(':eq('+(s-1)+')').css({left:s*w-w});u = false;});break;case 'prev':t = t-1;m = (-(t*w-w));current(t);if(o.autoHeight){autoHeight(t);}$(o.slides,obj).animate({left: m}, o.slidespeed,function(){if (t===0) {t = s;$(o.slides,obj).children(':eq('+(s-1)+')').css({position:'absolute',left:(s*w-w)});$(o.slides,obj).css({left: -(s*w-w)});$(o.slides,obj).children(':eq(0)').css({left:(s*w)});}if (t===2 ) $(o.slides,obj).children(':eq(0)').css({position:'absolute',left:0});if (t===1) $(o.slides,obj).children(':eq('+ (s-1) +')').css({position:'absolute',left:-w});u = false;});break;case 'fade':t = [t]*1;m = (-(t*w-w));current(t);if(o.autoHeight){autoHeight(t);}$(o.slides,obj).children().fadeOut(o.fadespeed, function(){$(o.slides,obj).css({left: m});$(o.slides,obj).children(':eq('+(s-1)+')').css({left:s*w-w});$(o.slides,obj).children(':eq(0)').css({left:0});if(t===s){$(o.slides,obj).children(':eq(0)').css({left:(s*w)});}if(t===1){$(o.slides,obj).children(':eq('+(s-1)+')').css({ position:'absolute',left:-w});}$(o.slides,obj).children().fadeIn(o.fadespeed);u = false;});break;default:break;}};});};})(jQuery);