/** * @cfg.seqEl: sequence container */ (function($){ $.fn.slide = function( cfg ) { var seqEl = $(cfg.seqEl).eq(0); var timer_id; var currentSlide; var currentIdx = 0; var seqButtons = []; var interval = cfg.interval ? cfg.interval : 4000; var clickDelay = cfg.clickDelay ? cfg.clickDelay : 11000; var slides = $('.slide',this); var len = slides.length; $('.slide',this).each( function(idx){ if ( idx > 0 ) $(this).hide(); var seqB = $('
'+(idx+1)+'
'); seqB.addClass('seq-b'); if ( idx == 0 ) seqB.addClass('active'); seqEl.append(seqB); seqButtons.push(seqB); seqB.click(onSequenceClick); seqB.attr("seqid",idx); }); currentSlide = slides.eq(0); // setActive(0); startSlide(); function startSlide() { timer_id = setTimeout(transition,interval); } function transition() { currentIdx++; setActive(currentIdx,2500,cfg.interval); if ( currentIdx == (len-1) ) currentIdx = -1; } function setActive(activeIdx,fadeDelay,slideDelay) { currentSlide.fadeOut(fadeDelay); currentSlide = $(slides.get(activeIdx)); currentSlide.fadeIn(fadeDelay); if ( slideDelay ) timer_id = setTimeout(startSlide,slideDelay); else startSlide() $(seqButtons).each(function(idx){ if( idx == activeIdx ) this.addClass('active'); else this.removeClass('active'); }); } function onSequenceClick(evt) { clearTimeout(timer_id); var t = $(evt.target); seqIdx = t.attr('seqid'); setActive(seqIdx,-1,clickDelay); currentIdx = seqIdx; if ( currentIdx == (len-1) ) currentIdx = -1; // console.log(evt)evt.target.attr('seqid')); } } })(jQuery)