【发布时间】:2013-06-14 10:10:06
【问题描述】:
我在Events and timing in-depth找到了一篇文章,这篇文章中有一个例子:
function run() {
var div = document.getElementsByTagName('div')[0]
for(var i=0xA00000;i<0xFFFFFF;i++) {
div.style.backgroundColor = '#'+i.toString(16)
}
}
上面写着:
在大多数浏览器中,在脚本完成之前,您什么都看不到,或者直到 浏览器暂停它并显示“脚本也在运行”的消息 长”。
这意味着在执行这些代码时我看不到动画。
但是为什么呢?这个我不太明白,是不是代码执行太快了?还是执行代码后渲染工作完成?
为什么添加setTimeout 可以显示动画?
【问题讨论】:
-
脚本执行和执行流程不谈,您可以通过询问更改元素的大小和颜色来触发重绘。我猜它会强制浏览器在继续之前重新绘制。
标签: javascript animation settimeout