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

Popular posts from this blog

android - Get AccessToken using signpost OAuth without opening a browser (Two legged Oauth) -

org.mockito.exceptions.misusing.InvalidUseOfMatchersException: mockito -

google shop client API returns 400 bad request error while adding an item -