随机背景颜色javascript setinterval

时间:2014-03-08 03:24:00

标签: javascript

我试图让我的背景成为三种颜色之一,但代码永远不会有效。我认为这背后有语法错误,但我无法调试它。怎么了?

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);

1 个答案:

答案 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);
}

演示:http://jsfiddle.net/LscBA/2/