我有一個幻燈片,它基本上改變了圖像的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);
});
問題是,它有時會被竊聽,我不知道它爲什麼會發生。如果你在淡出期間點擊(我認爲).animate({opacity:0}, 500, startSlideshow)
它開始加快。
有人知道爲什麼會發生這種情況嗎?
更新
實際上似乎它的延遲期間,而不是生命的過程中發生的事情。
更新2
我可以修復它喜歡這一點,但感覺有點哈克:
image.animate({ opacity: 1 }, 1000)
.animate({ opacity: 1 }, 5000)
.animate({opacity:0}, 1000, startSlideshow);
我也遇到過隊列停止的嚴重困難。不知何故,新的動畫無法從「停止」停止的地方開始。我能想到的唯一可靠的解決方案就是'.stop(true,true)',這很醜陋。我期待着閱讀答案! – MvanGeest 2010-08-03 13:35:27
似乎我的問題可能與延遲有關。 http://api.jquery.com/delay/和http://dev.jquery.com/ticket/6576 – Pickels 2010-08-03 13:49:49