jQuery 队列非常烦人 - 我无法理解它......
以下函数包含 4 个动画,我希望一个接一个地发生(不是同时发生)。
function startupAnime() {
$("#header").animate({"opacity":"1"},{duration:3000, queue:"global"});
$("#header").animate({"top":"0px"},{duration:3000, queue:"global"});
&("#loader").animate({"opacity":"0"},{duration:3000, queue:"global"});
$("#background").animate({"background-position" : "300px center"},{duration:3000, queue:"global"});
}
$(window).load(function() {
startupAnime();
})
两个#header 元素将一个接一个地进行动画处理,但其余的都同时发生。
然后我发现队列仅在您为相同元素设置动画时才有效!这不是很有用...但是添加 queue:"name" 显然应该将它们链接到同一个队列中...尽管这只会阻止它们为我工作。
我在这里错过了什么吗?我不确定队列是否意味着'下一个动画将在当前动画完成时开始',或者'这些动画被保存在队列中等待你释放它们'可能通过调用 queue("global") 或其他东西!?
大多数建议都是关于为一个元素设置动画,或者设置许多函数并使用回调来“迭代”这些函数——如果你问我,这不是很干净。我只是希望能够在我要求时运行动画列表。
注意:动画的“列表”可能一次为一个元素设置动画,但我也可能希望两个或更多元素在列表中的某个点同时设置动画。这是一个示例:
animate element A
-> then ->
animate element B
-> then ->
animate element C and D together
-> then ->
animate element E