【发布时间】:2021-10-27 04:30:30
【问题描述】:
有人可以向我解释为什么这不起作用。我的目标是遍历一个 javscript 文件以更改单击时我的 html 文档的背景颜色。当我要这样做时,它不会循环通过,而是直接变成黄色(循环的最后一个)
const colors = ["blue", "green", "yellow"];
const btn = document.getElementById("btn");
function myFunction(){
for (let i=0; i<colors.length; i++){
document.body.style.backgroundColor = colors[i]
}
}
它会自动转到 i = 2 并创建黄色背景色
这里是html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Colour Flipper</title>
<link rel="stylesheet" href="colourflipper.css">
</head>
<body>
<div class="top">
<ul>Colour Flipper</ul>
<ul>Simple Hex</ul>
</div>
<div class="main">
<button id="btn" onclick="myFunction()">
<h1>Background Colour</h1>
</button>
</div>
<script src="colourflipper.js"></script>
</body>
</html>
【问题讨论】:
-
还请包括您要实现的目标(“不起作用”不起作用)。然后大声读出你想要做的事情,并将其与你的函数代码进行比较。
-
代码有效。但它并没有按照您的预期进行。你想看到交替的颜色吗?请注意,循环运行得非常快,您根本看不到前两种颜色
-
同步代码运行时浏览器 UI 不更新。由于您使用的是循环,因此循环会运行到完成,然后 UI 会更新。您需要在为要看到的每个单独更改设置背景之间使用一些超时
-
我正在尝试更改点击颜色
标签: javascript html css