【发布时间】:2015-03-05 17:32:18
【问题描述】:
我正在尝试创建一个简单的 JQuery 滑块。并且每次只能看到一张图片。在 x 秒后,一个新的图像应该淡入。 唯一的问题是图像没有显示并停留在第一张图片上。 也许有人可以帮助我。
到目前为止的代码: HTML
<div id="slideshow">
<span>
<div class="vHolder">
<img src="http://lorempixel.com/150/150/" alt="Slideshow Image 1" class="active" />
</div>
</span>
<span>
<div class="vHolder">
<img src="http://lorempixel.com/150/150/" alt="Slideshow Image 2" />
</div>
</span>
<span>
<div class="vHolder">
<img src="http://lorempixel.com/150/150/" alt="Slideshow Image 3" />
</div>
</span>
<span>
<div class="vHolder">
<img src="http://lorempixel.com/150/150/" alt="Slideshow Image 4" />
</div>
</span>
</div>
JS:
function slideSwitch() {
var $active = $('#slideshow img.active');
if ( $active.length == 0 ) $active = $('#slideshow img:last');
var $next = $active.next().length ? $active.next()
: $('#slideshow img:first');
$active.addClass('last-active');
$next.css({opacity: 0.0})
.addClass('active')
.animate({opacity: 1.0}, 1000, function() {
$active.removeClass('active last-active');
});
}
$(function() {
setInterval( "slideSwitch()", 2500 );
});
还有我的工作 jsfiddle:http://goo.gl/4AvUcr
【问题讨论】:
-
我不认为 next 会像您希望的那样定位下一张图片。我认为 next 抓住了下一个兄弟姐妹,在这种情况下没有兄弟姐妹,因为它包裹在一个 div 和一个 span 中。也许更好的方法是给每个 img 一个与其顺序有关的数据属性,然后定位该数据属性并每次将其递增一,一旦达到长度(最后一个数据属性)重置计数。
标签: jquery css slider fadein jquery-slider