Для циклического перемещения по вашему массиву вы можете установить переменную current-position и переменную, которая сохраняет длину массива:
var current = 0,
length = slides.length,
interval = setInterval(function() {
image.attr('src', slides[current]);
anchor.attr('href', links[current]).html(titles[current]);
current++;
if (current >= length) {
current = 0;
}
}, 3000);
Затем, чтобы исчезнуть, вы можете исчезнуть, измените источник,затем fade-back-in:
image.fadeOut(500, function () {
image.attr('src', slides[current]).fadeIn(500);
anchor.attr('href', links[current]).html(titles[current]);
current++;
if (current >= length) {
current = 0;
}
});
Это может привести к тому, что изображение загружается не совсем при включении fadeIn(500)
, что можно исправить с помощью обработчика событий, прикрепленного к load
событие для элемента image
:
var image = $('#stretch-img').on('load', function () {
image.fadeIn(500);
});
Затем вы можете удалить fadeIn(500)
из функции интервала, поскольку она будет срабатывать при загрузке изображения.Событие load
будет срабатывать при каждом изменении источника изображения и завершении загрузки нового источника.
Обратите внимание, что .on()
является новым в jQuery 1.7 и в этом случае совпадает с .bind()
.