【发布时间】:2014-10-19 14:16:19
【问题描述】:
我正在尝试制作可以改变颜色的 div。这是我的代码:
window.onload = function () {
for (;;){
setTimeout(function () {
document.querySelector('style').style.backgroundColor = colors[rand(colors.length)];
}, 2000);
}
}
var colors = [
'red',
'green',
'blue',
'yellow',
'magenta',
'pink'
];
var rand = function (max) {
return Math.floor(Math.random() * max);
};
.style{
background-color: pink;
top: 50px;
left: 50px;
height: 50px;
width: 50px;
}
<body>
<div class="style"></div>
</body>
但我不知道为什么它不起作用。
编辑:该脚本还会使浏览器崩溃
【问题讨论】:
-
在这里也添加您的代码。有一个原因你不能在这里包含没有任何代码的 jsfiddle 链接。
-
对于拥有超过 100 个代表的人来说,格式很糟糕......
-
你有一个无限循环,这就是原因。
setTimeout回调永远无法执行,因为事件循环无法继续下一个滴答声。 -
@FelixKling 实际上这不是一个无限循环,而是我会说用新的
setTimeout任务无休止地填充任务队列。浏览器崩溃的原因只是堆栈溢出。
标签: javascript