gpt4 book ai didi

javascript - 每秒在红色和绿色之间更改背景颜色

转载 作者:太空狗 更新时间:2023-10-29 16:48:57 24 4
gpt4 key购买 nike

我正在尝试使用 JavaScript 让网页每隔一秒更改一次背景颜色。我正在使用 setTimeout 但我不知道如何让我的变量在函数中发生变化。这是我的代码:

 <!DOCTYPE html>
<html>
<head>
<script type="text/javascript">
function changecolors() {
x = 1; // <-- I know this is wrong, I just don't know where to place it
var t = setTimeout("change()", 1000);
}
function change() {
while(x < 3) {
if(x = 1) {
color = "red";
x++;
} else if (x = 2) {
color = "green";
x = 1;
}
document.body.style.background = color;
}
}
</head>
<body onload="changecolors()">
</body>
</html>

最佳答案

这里有几个问题。我会修复你的代码:

var x;

function changecolors() {
x = 1;
setInterval(change, 1000);
}

function change() {
if (x === 1) {
color = "red";
x = 2;
} else {
color = "green";
x = 1;
}

document.body.style.background = color;
}

基本上...

  • 你需要setInterval而不是 setTimeout . setTimeout只执行一次。
  • =分配,即使在 if 中陈述。你需要== (或更好,===)。
  • 您不应该将字符串传递给 setTimeoutsetInterval .相反,传递一个函数。

另一点注意:你不应该使用 on*事件监听器的 HTML 元素属性,但特别是在 <body> 上,因为您可以改用 JavaScript 执行此操作,并且不会引人注目:

window.onload = changecolors;

当然,you could do it with fewer functions and no pollution of the global namespace .

关于javascript - 每秒在红色和绿色之间更改背景颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8250647/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com