Javascript睡眠..setInterval javascript中的setTimeout
Javascript sleep ....setTimeout from within setInterval javascript
setTimeout
是否在setInterval
内部工作?
我正在为一个奇怪的艺术项目编写一些JavaScript来动画化一些DOM元素。对我来说,解释我的问题的最好方法是举一个例子:
我有50个不同的div,我需要通过使用setInterval
改变它们在屏幕上的位置来设置动画。我需要每个div以不同的速率移动。
我计划使用的解决方案是在较大的changePosition函数中设置一个sleep函数,这样我就可以为每个div传递不同的sleep值。这样,我就可以通过字典为每个div分配唯一的移动速率。
我遇到的问题是JavaScript没有"睡眠"。它只有setTimeout
,在我的setInterval
循环中似乎不起作用。
setTimeout()
在setInterval()
内部完美工作,但由于您正在尝试模仿javascript没有的sleep()
,因此在我看来,当setTimeout()
异步工作时,您似乎正在尝试编写同步代码。您需要重新思考如何编写代码才能做到这一点。
发布您的一些代码,我们可以提供更具体的帮助。
我不完全确定我是否遵循了你想要做的,但通过为每个对象使用单独的计时器,以不同的速率为N个不同的事物设置动画可能是最简单的。然后,每个对象的计时器都可以按照自己的速率设置,并检测自己的完成情况,而不必通过某个中央计时器来管理它们。
此外,如果你用javascript从头开始编写动画例程,你需要做的工作要多得多。这个问题已经解决了数千次,你没有理由再自己发明它。一个简单的谷歌搜索"javascript动画示例"将显示各种各样的示例和大量代码,您可以根据这些示例和代码进行搜索。这里有一个很好的教程:http://javascript.info/tutorial/animation.
像jQuery这样的流行库有各种内置的动画函数,这些函数也为您做了很多脏活。动画也可以在现代浏览器(IE除外)中使用CSS3来完成。
也许您正在寻找jQuery delay()函数?http://api.jquery.com/delay/
这里:我可以在jQuery中将.delay()与.animate()一起使用吗?您可以看到delay()和animate()函数是如何协同工作的。
- 继续使用javascript中的setTimeout
- setInterval()序列中的setTimeout()只触发一次
- firefox中的setTimeout延迟
- iframe 加载事件中的 setTimeout 似乎没有像预期的那样等待 x 秒
- javascript 中的 setTimeout 问题
- 我不明白 javascript 中的 setTimeout(fn,0) 是如何工作的
- Javascript睡眠..setInterval javascript中的setTimeout
- 重写require.js中的setTimeout
- 画布中的setTimeout
- 如何重置按钮中的setTimeout函数,使其可以再次运行
- for循环中的setTimeout,变量不变
- IE8 中的 setTimeOut 和无响应脚本出现问题
- Javascript中的setTimeout冲突
- 从Javascript中的setTimeout函数中更新对象的属性值
- 如何从AJAX回调中的setTimeout()中调用存储在一组选项中的函数
- Node.js中的SetTimeout问题
- 如何覆盖javascript中的setTimeOut函数
- For循环中的setTimeout问题
- JavaScript中的setTimeout是否接受实(浮点)延迟times_ ?
- CoffeeScript中的setTimeout()循环