【发布时间】:2016-03-08 04:48:43
【问题描述】:
$(document).ready(function(){
//configerations
var width = 720;
var animationSpeed = 700;
var currentSlide = 1;
//DOM items
var $slider = $('#slider'); //main sliding div
var $slideContainer = $slider.find('.slides'); //ULs
var $slides = $slideContainer.find('.slide'); // LIs
$slider.click(function() {
$slideContainer.animate({'margin-left': '-=720px'},animationSpeed, function() {
currentSlide++;
if (currentSlide == $slides.length) {
currentSlide = 1;
$slideContainer.css('margin-left', 0); }
});
});
});
#slider {width:720px; height:400px; overflow:hidden; float:left; border: 1px solid black;}
#slider .slides {display: block; width:6000px; height:400px; margin:0; padding:0;}
#slider .slide {float:left; list-style-type:none; width:720px; height:400px;}
<div id="slider">
<ul class="slides">
<li class="slide">111</li>
<li class="slide">222</li>
<li class="slide">333</li>
<li class="slide">444</li>
<li class="slide">555</li>
<li class="slide">666</li>
</ul>
</div>
在这个 onClick Slider 中,它可以正常工作到最后一张幻灯片,然后不点击就转到第一张幻灯片。
【问题讨论】:
-
我认为将
if子句从currentSlide == $slides.length更改为currentSlide > $slides.length应该可以解决您的问题。基本上,检查currentSlide是否大于 幻灯片数量,然后将currentSlide设置为1并将$slideContainer的margin-left设置为0。 -
感谢 Tahir,它现在可以正常工作了,但是从幻灯片 6 到 1,它的动画效果不正确。从幻灯片 6 动画到空白幻灯片,然后空白幻灯片在完成动画后立即更改为幻灯片 1。有什么解决办法吗?
标签: slider jquery-animate