1

我基本上有这个代码:

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

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

有没有办法实现这一点,而无需以“继续传递”风格重写我的整个代码?

我假设答案是否定的,我将不得不硬着头皮去做,但我想我会问。

谢谢!
丹尼尔

4

4 回答 4

3

答案是不。

JavaScript 中唯一的阻塞 API 是内置的-alert和.confirmprompt

于 2011-02-11T13:28:07.873 回答
2

你可以试试 jQuery 的新deferredAPI

于 2011-02-11T13:29:10.853 回答
1

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

于 2011-02-11T13:30:13.200 回答
0

Evil hack:不要使用 setTimeout 和friends(放弃控制流的函数)让你的动画工作,而是使用while循环、自旋锁风格让它们以愚蠢的方式工作。在伪代码中:

next_time = curr_time + delta;
while(get_time() < next_time){} //Do nothing
于 2011-02-11T14:52:30.713 回答