Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 要将HTML元素的颜色从红色更改为绿色,然后再更改为红色吗_Javascript_Html - Fatal编程技术网

Javascript 要将HTML元素的颜色从红色更改为绿色,然后再更改为红色吗

Javascript 要将HTML元素的颜色从红色更改为绿色,然后再更改为红色吗,javascript,html,Javascript,Html,我想将标签的颜色从红色更改为绿色,然后使用setTimeout在2秒钟后再次更改为红色。从绿色变为红色后应停止。这应该在一个循环中发生3次。我该怎么做 <script> setTimeout(a(),2000); function a() { var i; for(i=0;i<=2;i++) { if(i%2==0) { document.getElementById("s1").style.color="red"; }

我想将标签的颜色从红色更改为绿色,然后使用setTimeout在2秒钟后再次更改为红色。从绿色变为红色后应停止。这应该在一个循环中发生3次。我该怎么做

 <script>
 setTimeout(a(),2000);

function a()
{
 var i;
 for(i=0;i<=2;i++)
  {
   if(i%2==0)
    {
     document.getElementById("s1").style.color="red";
     }
    else
      {
     document.getElementById("s1").style.color="green";
      }
     }
    }
  </script>
  <body onload="a()">
  <label id="s1">WELCOME</label>
    </body>

你可以试试下面的方法

<script>
 setTimeout(b, 2000);

 function a() {
    document.getElementById("s1").style.color="red";
 }

 function b() {
    document.getElementById("s1").style.color="green";
    setTimeout(a, 2000);
 }
</script>

<body onload="a()">
  <label id="s1">WELCOME</label>
</body>
for循环只是立即执行,您只能看到它的最后一次更改,它应该是绿色的。您需要将i从函数中拉出,以保持状态,然后使用setTimeout调用self来更改颜色

setTimeouta,2000年;将立即执行函数a,您需要使用setTimeouta,2000;相反

setTimeouta,2000年;在脚本的开头可以删除,只需在body.onload中调用a,it本身就会处理其余的事情

var i=0; 功能a{ var color=i%2==0?'red':'green'; document.getElementByIds1.style.color=color; ++一,;
如果我我强烈建议使用CSS动画而不是JavaScript来实现这一点。在JavaScript中,跟踪状态是很棘手的,在CSS中指定这一点要容易得多。另外,您的代码将不会太混乱

这个特定的示例将无限期地循环,但是您可以轻松地查找有关如何使用CSS动画的文档

@关键帧红绿{ 0%、50%、100%{颜色:红色;} 25%,75%{颜色:绿色;} } @-webkit关键帧红绿色{ 0%、50%、100%{颜色:红色;} 25%,75%{颜色:绿色;} }
嘿!为什么是模数?如果我%2==0,在你的上下文中似乎毫无意义。而且你没有问你陈述过的问题。你目前面临什么问题?你可以只做setTimeouta,2000。a已经是一个函数,没有必要把它包装成另一个函数,与b一样。@MarceloCamargo-我同意你的观点,但是,我喜欢像上面那样总结。呵呵无论如何,我已接受您的编辑: