javascript - Simple slider using jquery -
i want implement simple slider.
the problem if there more 2 slides works fine. if there 2 slides cause issue.
if there 2 slides , , click on previous arrow works fine when click on next arrow image comes after time thats not good.
i want implement same thing clicking next arrow works previous arrow.
html:
<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> </ul> </div>
css:
#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; }
js:
jquery(document).ready(function ($) { 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(); }); });
please me. thank in advance
the difference here :
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', ''); }); };
you can remove '+' , '-' in "left" option. makes difference
Comments
Post a Comment