java红绿灯倒计时_{Javascript}实现红绿灯倒计时

​Html标签作用:

超文本标记语言,标准通用标记语言下的一个应用。

"超文本"就是指页面内可以包含图片、链接,甚至音乐、程序等非文字元素。

超文本标记语言的结构包括“头”部分(英语:Head)、和“主体”部分(英语:Body),其中“头”部提供关于网页的信息,“主体”部分提供网页的具体内容。

CSS样色的作用:

层叠样式表(英文全称:Cascading Style Sheets)是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文件样式的计算机语言。CSS不仅可以静态地修饰网页,还可以配合各种脚本语言动态地对网页各元素进行格式化。

CSS 能够对网页中元素位置的排版进行像素级精确控制,支持几乎所有的字体字号样式,拥有对网页对象和模型样式编辑的能力。

Javascript的作用:

JavaScript一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在HTML(标准通用标记语言下的一个应用)网页上使用,用来给HTML网页增加动态功能。

编写页面内容与逻辑:

.box {

overflow: hidden;

width: 400px;

padding: 10px;

background: black;

border-radius: 20px;

}

.box div {

width: 33.33%;

float: left;

text-align: center;

}

.red {

width: 100px;

height: 100px;

background: #D7D7D7;

border-radius: 100px;

display: block;

margin: 0px auto;

line-height: 100px;

font-size: 80px;

color: #D7D7D7;

}

.yellow {

width: 100px;

height: 100px;

background: #D7D7D7;

border-radius: 100px;

display: block;

margin: 0px auto;

line-height: 100px;

font-size: 80px;

color: #D7D7D7;

}

.green {

width: 100px;

height: 100px;

background: #D7D7D7;

border-radius: 100px;

display: block;

margin: 0px auto;

line-height: 100px;

font-size: 80px;

color: #D7D7D7;

}

window.onload = function() {

var time = 10; //可以设置红灯绿灯时间

exec();

setInterval(function() {

exec();

}, 1000 * (time * 2 + 3));

function exec() {

//绿灯

green();

//黄灯

setTimeout(function() {

yellow();

}, 1000 * time);

//红灯

setTimeout(function() {

red();

}, 1000 * (time + 3));

}

function red() {

var num = time;

var timer = setInterval(function() {

num--;

var red = document.getElementsByClassName('red');

red[0].innerHTML = num;

red[0].style.background = 'red';

if(num == -1) {

clearInterval(timer);

red[0].innerHTML = '';

red[0].style.background = '';

}

}, 1000);

}

function yellow() {

var num = 3; // 黄灯时间设置了3秒

var timer = setInterval(function() {

num--;

var yellow = document.getElementsByClassName('yellow');

yellow[0].innerHTML = num;

yellow[0].style.background = 'yellow';

if(num == -1) {

clearInterval(timer);

yellow[0].innerHTML = '';

yellow[0].style.background = '';

}

}, 1000);

}

function green() {

var num = time;

var timer = setInterval(function() {

num--;

var green = document.getElementsByClassName('green');

green[0].innerHTML = num;

green[0].style.background = 'green';

if(num == -1) {

clearInterval(timer);

green[0].innerHTML = '';

green[0].style.background = '';

}

}, 1000);

}

}

实现结果:

468485fda3246d75a9d6c8115629775e.png

5367cfd0ec3008c5d175c0e1e9ccc975.png

0709363a7c728731469768aece53ff32.png

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实现红绿灯倒计时显示在灯内部,可以使用HTML、CSS和JavaScript。 首先,需要创建一个包含三个圆形灯的HTML结构。每个灯都有一个内部圆形,用于显示倒计时。HTML代码如下: ```html <div class="traffic-light"> <div class="red"></div> <div class="yellow"></div> <div class="green"></div> </div> ``` 接着,使用CSS样式来定义灯的外观和位置。在这里,我们使用绝对定位来将内部圆形放置在灯的心。CSS代码如下: ```css .traffic-light { position: relative; width: 100px; height: 250px; } .red, .yellow, .green { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); width: 60px; height: 60px; border-radius: 50%; } .red { background-color: red; } .yellow { background-color: yellow; } .green { background-color: green; } ``` 最后,使用JavaScript实现倒计时功能。可以使用setInterval函数来定时更新内部圆形的文本内容。JavaScript代码如下: ```javascript var red = document.querySelector('.red'); var yellow = document.querySelector('.yellow'); var green = document.querySelector('.green'); function startTimer(element, time) { var interval = setInterval(function() { time--; element.innerText = time; if (time <= 0) { clearInterval(interval); } }, 1000); } startTimer(red, 10); startTimer(yellow, 5); startTimer(green, 15); ``` 在这个例子,我们使用了startTimer函数来开始倒计时。该函数接受两个参数:一个元素和倒计时的时间。它使用setInterval函数每秒更新内部圆形的文本内容,直到倒计时时间到达0。在这个例子,我们分别为红、黄、绿三个灯设置了不同的倒计时时间。 完整的代码示例: ```html <!DOCTYPE html> <html> <head> <title>红绿灯倒计时</title> <style> .traffic-light { position: relative; width: 100px; height: 250px; } .red, .yellow, .green { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); width: 60px; height: 60px; border-radius: 50%; } .red { background-color: red; } .yellow { background-color: yellow; } .green { background-color: green; } </style> </head> <body> <div class="traffic-light"> <div class="red"></div> <div class="yellow"></div> <div class="green"></div> </div> <script> var red = document.querySelector('.red'); var yellow = document.querySelector('.yellow'); var green = document.querySelector('.green'); function startTimer(element, time) { var interval = setInterval(function() { time--; element.innerText = time; if (time <= 0) { clearInterval(interval); } }, 1000); } startTimer(red, 10); startTimer(yellow, 5); startTimer(green, 15); </script> </body> </html> ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值