jquery - stop this slider from looping -
i have code , want prevent looping example has slide 1 slide 2 slide three, must not able go slide 3 slide 1 , slide 1 slide three. here jquery code
jquery(document).ready(function ($) { $('#checkbox').change(function(){ setinterval(function () { moveright(); }, 3000); }); var slidecount = $('#slider ul li').length; var slidewidth = $('#slider ul li').width(); var slideheight = $('#slider ul li').height(); var sliderulwidth = slidecount * slidewidth; $('#slider').css({ width: slidewidth, height: slideheight }); $('#slider ul').css({ width: sliderulwidth, marginleft: - slidewidth }); $('#slider ul li:last-child').prependto('#slider ul'); function moveleft() { $('#slider ul').animate({ left: + slidewidth }, 200, function () { $('#slider ul li:last-child').prependto('#slider ul'); $('#slider ul').css('left', ''); }); }; function moveright() { $('#slider ul').animate({ left: - slidewidth }, 200, function () { $('#slider ul li:first-child').appendto('#slider ul'); $('#slider ul').css('left', ''); }); }; $('a.control_prev').click(function () { moveleft(); }); $('a.control_next').click(function () { moveright(); }); });
thank you.
that because of no restrictions on prependto
, appendto
functions. comment them out.
introduced variable keep track of slide on, , vary 1 no. of slides.
jquery(document).ready(function ($) { $('#checkbox').change(function(){ setinterval(function () { moveright(); }, 3000); }); var slidecount = $('#slider ul li').length; var current = 1; var slidewidth = $('#slider ul li').width(); var slideheight = $('#slider ul li').height(); var sliderulwidth = slidecount * slidewidth; $('#slider').css({ width: slidewidth, height: slideheight }); $('#slider ul').css({ width: sliderulwidth, marginleft: - slidewidth }); $('#slider ul li:last-child').prependto('#slider ul'); function moveleft() { $('#slider ul').animate({ left: + slidewidth }, 200, function () { $('#slider ul li:last-child').prependto('#slider ul'); $('#slider ul').css('left', ''); }); }; function moveright() { $('#slider ul').animate({ left: - slidewidth }, 200, function () { $('#slider ul li:first-child').appendto('#slider ul'); $('#slider ul').css('left', ''); }); }; $('a.control_prev').click(function () { if(current>1){ current--; moveleft(); } }); $('a.control_next').click(function () { if(current<slidecount){ current++; moveright(); } }); $(".slidebuttons").click(function(){ var clickedslide = $('.slidebuttons').index(this)+1; $(".slidebuttons").removeclass('active'); $(this).addclass('active'); if (current>clickedslide){ var diff = current-clickedslide; for(var l=0;l<diff;l++){ current--; moveleft(); } } if (current<clickedslide){ var diff = clickedslide-current; $(".slidebuttons").removeclass('active'); $(this).addclass('active'); for(var l=0;l<diff;l++){ current++; moveright(); } } }); });
html { border-top: 5px solid #fff; background: #58ddaf; color: #2a2a2a; } html, body { margin: 0; padding: 0; font-family: 'open sans'; } h1 { color: #fff; text-align: center; font-weight: 300; } #slider { position: relative; overflow: hidden; margin: 20px auto 0 auto; border-radius: 4px; } #slider ul { position: relative; margin: 0; padding: 0; height: 200px; list-style: none; } #slider ul li { position: relative; display: block; float: left; margin: 0; padding: 0; width: 500px; height: 300px; background: #ccc; text-align: center; line-height: 300px; } a.control_prev, a.control_next { position: absolute; top: 40%; z-index: 999; display: block; padding: 4% 3%; width: auto; height: auto; background: #2a2a2a; color: #fff; text-decoration: none; font-weight: 600; font-size: 18px; opacity: 0.8; cursor: pointer; } a.control_prev:hover, a.control_next:hover { opacity: 1; -webkit-transition: 0.2s ease; } a.control_prev { border-radius: 0 2px 2px 0; } a.control_next { right: 0; border-radius: 2px 0 0 2px; } .slider_option { position: relative; margin: 10px auto; width: 160px; font-size: 18px; } .slidebuttons.active{ background-color:green; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <h1>incredibly basic slider</h1> <button class="slidebuttons active">slide 1</button> <button class="slidebuttons">slide 2</button> <button class="slidebuttons">slide 3</button> <button class="slidebuttons">slide 4</button> <div id="slider"> <a href="#" class="control_next">></a> <a href="#" class="control_prev"><</a> <ul> <li>slide 1</li> <li style="background: #aaa;">slide 2</li> <li>slide 3</li> <li style="background: #aaa;">slide 4</li> </ul> </div> <div class="slider_option"> <input type="checkbox" id="checkbox"> <label for="checkbox">autoplay slider</label> </div>
Comments
Post a Comment