使用setInterval设置三个元素实现红绿灯倒计时循环。开始时显示红灯,黄灯,绿灯文字,背景为灰色,先将红灯变为倒计时时间同时改变背景色为红色,再将黄灯变为倒计时时间同时改变背景色为黄色,然后将绿灯变为倒计时时间同时改变背景色为绿色,最后实现循环
时间: 2024-11-13 09:22:38 浏览: 23
要使用`setInterval`设置一个红绿灯倒计时循环,首先需要HTML结构来展示三个状态的元素(红灯、黄灯和绿灯),以及相应的CSS样式。然后利用JavaScript编写定时器逻辑。下面是一个简单的示例:
```html
<!DOCTYPE html>
<html lang="en">
<head>
<style>
.light {
display: inline-block;
width: 50px;
height: 50px;
margin: 10px;
background-color: gray;
}
.red {
color: white;
background-color: red;
}
.yellow {
color: white;
background-color: yellow;
}
.green {
color: white;
background-color: green;
}
</style>
</head>
<body>
<div id="lightStatus" class="light"></div>
<script>
var lightStatus = document.getElementById('lightStatus');
var colors = ['red', 'yellow', 'green'];
var currentColorIndex = 0;
function changeLightColor(color) {
lightStatus.className = color;
}
function countdownTimer(t) {
t--;
if (t > 0) {
setTimeout(() => countdownTimer(t), 1000);
} else {
currentColorIndex++;
if (currentColorIndex >= colors.length) {
currentColorIndex = 0;
}
changeLightColor(colors[currentColorIndex]);
}
}
// 开始倒计时,例如从5秒开始
countdownTimer(5);
// 每次倒计时结束后切换灯光颜色
setInterval(() => {
changeLightColor(colors[0]); // 先切换回红灯
}, 3 * 1000); // 每3秒切换一次
</script>
</body>
</html>
```
这个示例中,我们创建了一个倒计时函数`countdownTimer`,它会每隔一秒递减计数,并在计时结束时改变灯光颜色。`setInterval`用于每三秒切换灯光回到初始的红灯状态。
注意这只是一个基础版本,实际应用中可能还需要考虑更详细的错误处理和用户体验。如果你想让倒计时数值动态变化,可以修改`countdownTimer`函数并传递一个具体的倒计时值。
阅读全文