使用setInterval设置三个元素实现红绿灯倒计时循环。开始时显示红灯,黄灯,绿灯文字,先将红灯变为倒计时同时改变背景色,依次循环改变
时间: 2024-11-13 16:41:49 浏览: 4
js实现网页同时进行多个倒计时功能
在JavaScript中,你可以使用`setInterval`函数结合HTML和CSS来创建一个简单的红绿灯倒计时效果。首先,你需要准备一个HTML结构,包含三个`<div>`分别代表红灯、黄灯和绿灯,以及一个计数器。然后利用JavaScript控制定时器和颜色变化。
下面是一个简化的示例:
```html
<!DOCTYPE html>
<html lang="en">
<head>
<style>
.light {
display: inline-block;
width: 50px;
height: 50px;
background-color: red; /* 初始状态 */
}
</style>
</head>
<body>
<div class="light" id="redLight">红灯</div>
<div class="light" style="background-color: yellow;">黄灯</div>
<div class="light" id="greenLight" style="background-color: green;">绿灯</div>
<script>
let count = 7; // 红灯倒计时秒数
const lights = ['#redLight', '#yellowLight', '#greenLight'];
function changeLights() {
if (count > 0) {
document.getElementById(lights[0]).innerText = '倒计时 ' + count;
document.getElementById(lights[0]).style.backgroundColor = 'red';
count--;
setTimeout(() => changeLights(), 1000);
} else {
lights.shift(); // 移除当前灯光
if (lights.length > 0) {
document.getElementById(lights[0]).innerText = lights[0].slice(-1); // 显示下一个灯光
document.getElementById(lights[0]).style.backgroundColor = lights[0].slice(4,-1); // 改变背景色
count = 7; // 重新开始倒计时
} else {
// 循环结束后可以添加停止定时器的代码
}
}
}
changeLights();
</script>
</body>
</html>
```
在这个示例中,我们设置了红灯开始倒计时,每秒递减1秒直到0,然后切换到黄灯,再切换到绿灯,如此循环。每个颜色对应的HTML元素ID用于获取并修改其内容和样式。
阅读全文