Javascript 制作div';使用递归函数反复更改背景颜色

Javascript 制作div';使用递归函数反复更改背景颜色,javascript,Javascript,我试图使div的背景色反复改变。(即,使其在两种颜色之间无限闪烁。)我使用setTimeout使函数在运行后再次调用自身,但它似乎只运行一次,然后就停止了。我尝试过使用if子句和开关,但没有效果。我错过了什么?谢谢你给我的建议 var myDiv = document.getElementById("animatebox"); function doAnimate() { switch (true) { case myDiv.style.backgroundColor

我试图使div的背景色反复改变。(即,使其在两种颜色之间无限闪烁。)我使用setTimeout使函数在运行后再次调用自身,但它似乎只运行一次,然后就停止了。我尝试过使用if子句和开关,但没有效果。我错过了什么?谢谢你给我的建议

var myDiv = document.getElementById("animatebox");

function doAnimate() {

    switch (true) {
        case myDiv.style.backgroundColor = "red":
             myDiv.style.backgroundColor = "blue";
             break;
        case myDiv.style.backgroundColor = "blue":
             myDiv.style.backgroundColor = "red";
             break;
    };

    setTimeout(doAnimate, 20);

};

doAnimate();

您的代码确实每20毫秒运行一次,但您没有正确使用
开关。此外,如果读取
backgroundColor
属性,它可能会返回颜色的其他表示形式,例如红色的“rgb(255,0,0)”。试试这个:

var myDiv=document.getElementById(“animatebox”);
var i=0;
函数doAnimate(){
如果(i++%2)
myDiv.style.backgroundColor=“蓝色”;
其他的
myDiv.style.backgroundColor=“红色”;
setTimeout(doAnimate,20);
};
doAnimate();
#animatebox{宽度:50px;高度:50px;背景色:红色;}

闪烁您的代码确实每20毫秒运行一次,但您没有正确使用开关
。此外,如果读取
backgroundColor
属性,它可能会返回颜色的其他表示形式,例如红色的“rgb(255,0,0)”。试试这个:

var myDiv=document.getElementById(“animatebox”);
var i=0;
函数doAnimate(){
如果(i++%2)
myDiv.style.backgroundColor=“蓝色”;
其他的
myDiv.style.backgroundColor=“红色”;
setTimeout(doAnimate,20);
};
doAnimate();
#animatebox{宽度:50px;高度:50px;背景色:红色;}

闪烁您的代码确实每20毫秒运行一次,但您没有正确使用开关
。此外,如果读取
backgroundColor
属性,它可能会返回颜色的其他表示形式,例如红色的“rgb(255,0,0)”。试试这个:

var myDiv=document.getElementById(“animatebox”);
var i=0;
函数doAnimate(){
如果(i++%2)
myDiv.style.backgroundColor=“蓝色”;
其他的
myDiv.style.backgroundColor=“红色”;
setTimeout(doAnimate,20);
};
doAnimate();
#animatebox{宽度:50px;高度:50px;背景色:红色;}

闪烁您的代码确实每20毫秒运行一次,但您没有正确使用开关
。此外,如果读取
backgroundColor
属性,它可能会返回颜色的其他表示形式,例如红色的“rgb(255,0,0)”。试试这个:

var myDiv=document.getElementById(“animatebox”);
var i=0;
函数doAnimate(){
如果(i++%2)
myDiv.style.backgroundColor=“蓝色”;
其他的
myDiv.style.backgroundColor=“红色”;
setTimeout(doAnimate,20);
};
doAnimate();
#animatebox{宽度:50px;高度:50px;背景色:红色;}
闪烁