html - Can someone explain how to make this jQuery slider autoplay and loop? -
here's slider i'm trying loop:
http://sixrevisions.com/demo/slideshow/final.html
i able add
timer = window.setinterval("autoslide()", 5000); function autoslide(){ jquery("#rightcontrol").click(); }
to end of jquery coding , move next slide every 5 seconds. however, after last slide, continues "click" rightcontrol button. how loop after last slide?
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script> <script type="text/javascript"> $(document).ready(function(){ var currentposition = 0; var slidewidth = 560; var slides = $('.slide'); var numberofslides = slides.length; // remove scrollbar in js $('#slidescontainer').css('overflow', 'hidden'); // wrap .slides #slideinner div slides .wrapall('<div id="slideinner"></div>') // float left display horizontally, readjust .slides width .css({ 'float' : 'left', 'width' : slidewidth }); // set #slideinner width equal total width of slides $('#slideinner').css('width', slidewidth * numberofslides); // insert controls in dom $('#slideshow') .prepend('<span class="control" id="leftcontrol">clicking moves left</span>') .append('<span class="control" id="rightcontrol">clicking moves right</span>'); // hide left arrow control on first load managecontrols(currentposition); // create event listeners .controls clicks $('.control') .bind('click', function(){ // determine new position currentposition = ($(this).attr('id')=='rightcontrol') ? currentposition+1 : currentposition-1; // hide / show controls managecontrols(currentposition); // move slideinner using margin-left $('#slideinner').animate({ 'marginleft' : slidewidth*(-currentposition) }); }); // managecontrols: hides , shows controls depending on currentposition function managecontrols(position){ // hide left arrow if position first slide if(position==0){ $('#leftcontrol').hide() } else{ $('#leftcontrol').show() } // hide right arrow if position last slide if(position==numberofslides-1){ $('#rightcontrol').hide() } else{ $('#rightcontrol').show() } } });
i think this jsfiddle you're looking for.
basically replace this:
currentposition = ($(this).attr('id')=='rightcontrol') ? currentposition+1 : currentposition-1;
with below, checks being @ 1 end of slideshow:
if ($(this).attr('id') == 'rightcontrol') { currentposition = currentposition >= slides.length - 1 ? 0 : currentposition + 1; } else { currentposition = currentposition <= 0 ? slides.length - 1 : currentposition - 1; }
i went ahead , added check moving left well, won't need it.
Comments
Post a Comment