我想通过顺序显示几个 png 来在页面加载时伪造一个简单的动画,每个 png 都会立即出现,但在下一个之前具有独特的、精确定时的延迟。使用最新版本的jQuery(编写时为1.4.2),它提供了延迟方法。我的第一个(脑死亡)冲动是:
$('#image1').show('fast').delay(800);
$('#image2').show('fast').delay(1200);
$('#image3').show('fast');
当然,所有这些都是同时出现的。jQuery doc 示例指的是被链接的单个项目,而不是处理多个项目。好的...使用来自 show() 的嵌套回调再试一次:
$('#image1').show('fast', function() {
$('#image2').show('fast', function() {
$('#image3').show('fast', function() {
});
});
});
看起来很丑(想象一下做 10 次,也想知道处理器会受到什么影响)但是嘿,它是按顺序工作的!虽然没有延迟。所以......在 show() 之后使用它的回调函数链接 delay() (甚至不确定它是否支持):
$('#image1').show('fast').delay(800, function() {
$('#image2').show('fast').delay(1200, function() {
$('#image3').show('fast');
});
});
嗯。我认为可能发生的相反结果:回调有效,但仍然没有延迟。那么......我应该使用队列和延迟的某种组合而不是嵌套回调吗?例如,队列的 jQuery 文档示例再次仅使用一个元素。猜测这将涉及使用自定义队列,但我不确定如何实现这一点。或者也许我错过了一个简单的方法?(对于一个简单的问题!)