Я пытаюсь создать простой слайдер JQuery. И каждый раз должно быть видно только одно изображение. И после x секунд новое изображение shoud исчезает. Только проблема в том, что изображения не отображаются и задерживаются на первом снимке. Может быть, кто-то может мне помочь.jQuery слайдер с постепенным изменением изображения
код до сих пор: 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
I не думайте, что следующее предназначено для следующего изображения, как вы этого хотите. Я думаю, что следующий захватит следующего брата, и в этом случае нет брата, потому что он завернут в div и промежуток. Возможно, лучший подход - дать каждому img атрибут данных, относящийся к его порядку, затем нацелить этот атрибут данных и увеличивать его на единицу каждый раз, как только длина (последний атрибут данных) будет достигнута, сбросит счет. – floor