У меня есть слайд-шоу, которое в основном изменяет атрибут src изображения и затухает его.Задержка jQuery: ускорение очереди?
function startSlideshow() {
if (i >= images.length) { i = 0 }
var path = images[i].path;
var name = images[i].name;
i++;
image.attr('src', path)
image.animate({opacity:1}, 1000)
.delay(5000)
.animate({opacity:0}, 500, startSlideshow);
}
Это работает.
У меня также есть что-то, что я называю сборщиком изображений. Это выглядит примерно так:
<ul id="ImagePicker">
<li>•</li>
<li>•</li>
<li>•</li>
</ul>
При нажатии на один из элементов li в слайд-шоу должно отображаться соответствующее изображение.
$('#ImagePicker li').click(function() {
image.stop(true, false)
.animate({ opacity: 0 }, 10, startSlideshow);
});
Проблема в том, что иногда это вызывает прослушивание, и я не уверен, почему это происходит. Если вы нажмете во время fadeout (я думаю) .animate({opacity:0}, 500, startSlideshow)
, он начнет двигаться быстрее.
Кто-нибудь знает, почему это может случиться?
Update
На самом деле, кажется, что во время задержки, а не во время одушевленных это происходит.
Update 2
я мог бы исправить это так, но он чувствует себя немного Hacky:
image.animate({ opacity: 1 }, 1000)
.animate({ opacity: 1 }, 5000)
.animate({opacity:0}, 1000, startSlideshow);
У меня были серьезные трудности с остановкой очереди. Каким-то образом новая анимация не запускается с того места, где остановлена «остановка». Единственное надежное решение, о котором я мог думать, это «.stop (true, true)», что является уродливым. Я с нетерпением жду ответа! – MvanGeest
Кажется, моя проблема может быть связана с задержкой. http://api.jquery.com/delay/ и http://dev.jquery.com/ticket/6576 – Pickels