Javascript 要将HTML元素的颜色从红色更改为绿色,然后再更改为红色吗
我想将标签的颜色从红色更改为绿色,然后使用setTimeout在2秒钟后再次更改为红色。从绿色变为红色后应停止。这应该在一个循环中发生3次。我该怎么做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"; }
<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-我同意你的观点,但是,我喜欢像上面那样总结。呵呵无论如何,我已接受您的编辑: