在JS中是否有任何“成语”或模式可以让我在动画运行时暂停执行?

时间:2011-02-11 13:25:51

标签: javascript animation wait continuations

我基本上有这个代码:

for (var i = 0; i < num; i++) {
  ShowCard(i);
}

现在,ShowCard只是添加了一个DOM元素,但是我想让它有一个动画,让这张卡从其他地方(鞋子)飞到最终目的地,我想要第二张卡片等到第一个飞行开始前完成飞行。

有没有办法实现这一点,而不是重写我的整个代码&#34;继续传递&#34;风格?

我假设答案是否定的,我必须咬紧牙关并做到这一点,但我想我会问。

谢谢!
丹尼尔

4 个答案:

答案 0 :(得分:3)

答案是否定的。

JavaScript中唯一的阻止API是内置的 - alertconfirmprompt

答案 1 :(得分:2)

您可以尝试jQuery的新deferred API

答案 2 :(得分:1)

您可以输入一个全局锁定变量inMotion,表示第二张卡无法移动。然后在调用第二张卡移动的代码中,你可以检查这个布尔值,如果没有时间移动,可以使用setTimeout或setInterval连续调用你的方法,直到它移动它为止。

答案 3 :(得分:0)

邪恶黑客:不要让你的动画使用setTimeout和朋友(放弃控制流的功能),使用while循环,旋转锁定风格使它们工作愚蠢。在伪代码中:

next_time = curr_time + delta;
while(get_time() < next_time){} //Do nothing