如何不断更改背景颜色? 我的以下代码导致“递归太多”错误“。
<html>
<body id = "BGCOLOR" bgcolor = rgb(0,0,0); >
<script>
function ChangeColor(){
document.body.style.backgroundColor = "rgb(Math.random(255),Math.random(255),Math.random(255))";
setTimeout(ChangeColor(),3000);
}
ChangeColor();
</script>
</body>
</html>
答案 0 :(得分:1)
setTimeout
接受一个函数,但你正在调用函数本身。所以,你只需要传递它ChangeColor
(没有括号)。此外,Math.random()
返回一个浮点数,然后需要扩展到255,然后转换为整数以在rgb(...)
中使用。
function ChangeColor() {
var r = parseInt(255 * Math.random());
var g = parseInt(255 * Math.random());
var b = parseInt(255 * Math.random());
var color = "rgb(" + [r, g, b].join(',') + ")";
document.body.style.backgroundColor = color;
setTimeout(ChangeColor, 3000);
}
ChangeColor();
<html>
<body>
</body>
</html>