我试图让我的背景成为三种颜色之一,但代码永远不会有效。我认为这背后有语法错误,但我无法调试它。怎么了?
var backcolor='yellow';
window.onload = function()
var x=1;
setInterval(
function() {
document.body.style.backgroundColor = backcolor;
x = Math.floor(Math.random() * 3) + 1;
if (x==1)
{backcolor='yellow';}
else if (x==2)
{backcolor='orange';}
else if (x==3)
{backcolor='red';}
}, 1000);
答案 0 :(得分:1)
您错过了{
功能中的}
和onload
。它应该是:
var backcolor = 'yellow';
window.onload = function () {
var x = 1;
setInterval(function () {
document.body.style.backgroundColor = backcolor;
x = Math.floor(Math.random() * 3) + 1;
if (x == 1) {
backcolor = 'yellow';
} else if (x == 2) {
backcolor = 'orange';
} else if (x == 3) {
backcolor = 'red';
}
}, 1000);
}
请注意,如果您正确缩进代码,这种情况会更加明显。另请注意,您可以使用var backcolor
声明在onload
函数中移动x
变量声明 - 不需要它是全局的。
另请注意,您可以通过删除if / else结构使您的功能更短更整洁:
window.onload = function () {
var colors = ['yellow', 'orange', 'red'];
setInterval(function () {
document.body.style.backgroundColor =
colors[Math.floor(Math.random()*colors.length)];
}, 1000);
}