我有一个幻灯片,它基本上改变了图像的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