杨老师课堂之JavaScript定时器案例的红绿灯设计

简介: 版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/kese7952/article/details/80346866 红绿灯倒计时 .
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/kese7952/article/details/80346866
<!DOCTYPE html>
<html>


	<head>
		<meta charset="UTF-8">
		<title>红绿灯倒计时</title>
		<style>
			.box {
				width: 250px;
				height: 52px;
				padding: 15px 30px;
				border: 2px solid #ccc;
				border-radius: 16px;
				margin: 0 auto;
			}
			
			.box .count {
				width: 60px;
				color: #666;
				font-size: 280%;
				line-height: 50px;
				padding-left: 6px;
				margin-left: 5px;
				border: 1px solid #fff
			}
			
			.box div {
				margin-left: 5px;
				float: left;
				width: 50px;
				height: 50px;
				border-radius: 50px;
				border: 1px solid #666;
			}
			
			.gray {
				background-color: #eee;
			}
			
			.red {
				background-color: red;
			}
			
			.yellow {
				background-color: yellow;
			}
			
			.green {
				background-color: #26ff00;
			}
		</style>
	</head>


	<body>
		<div class="box">
			<div id="red"></div>
			<div id="yellow"></div>
			<div id="green"></div>
			<div class="count" id="count"></div>
		</div>
		<script>
			// 获取红、黄、绿灯以及倒计时的元素对象
			var lamp = {
				red: {
					obj: document.getElementById('red'),
					timeout: 30,
					style: ['red', 'gray', 'gray'],
					next: 'green'
				},
				yellow: {
					obj: document.getElementById('yellow'),
					timeout: 5,
					style: ['gray', 'yellow', 'gray'],
					next: 'red'
				},
				green: {
					obj: document.getElementById('green'),
					timeout: 35,
					style: ['gray', 'gray', 'green'],
					next: 'yellow'
				},
				changeStyle(style) {
					this.red.obj.className = style[0];
					this.yellow.obj.className = style[1];
					this.green.obj.className = style[2];
				}
			};
			var count = {
				obj: document.getElementById('count'),
				change: function(num) {
					this.obj.innerHTML = (num < 10) ? ('0' + num) : num;
				}
			};
			var now = lamp.green;
			var timeout = now.timeout;
			lamp.changeStyle(now.style);
			count.change(timeout);
			setInterval(function() {
				if(--timeout <= 0) {
					now = lamp[now.next];
					timeout = now.timeout;
					lamp.changeStyle(now.style);
				}
				count.change(timeout);
			}, 1000);
		</script>
	</body>


</html>

 

目录
相关文章
|
3月前
|
数据采集 Web App开发 JavaScript
利用Selenium和XPath抓取JavaScript动态加载内容的实践案例
利用Selenium和XPath抓取JavaScript动态加载内容的实践案例
|
1月前
|
JavaScript 前端开发
js之一次性定时器
js之一次性定时器
10 1
|
1月前
|
JavaScript 前端开发
js之永久定时器
js之永久定时器
12 1
|
1月前
|
前端开发 JavaScript
JavaScript动态渲染页面爬取——CSS位置偏移反爬案例分析与爬取实战
JavaScript动态渲染页面爬取——CSS位置偏移反爬案例分析与爬取实战
|
3月前
|
JavaScript 前端开发 UED
Javaweb之javascript的小案例的详细解析
通过上述步骤,我们得到了一个动态更新的实时时钟,这个简单的JavaScript案例展示了定时器的使用方法,并讲解了如何处理日期和时间。这个案例说明了JavaScript在网页中添加动态内容与交互的能力。对于涉足JavaWeb开发的学习者来说,理解和运用这些基础知识非常重要。
41 11
|
3月前
|
JavaScript 前端开发
js之永久定时器
js之永久定时器
|
3月前
|
JavaScript 前端开发
|
5月前
|
JavaScript 前端开发 安全
JavaScript基础-定时器:setTimeout, setInterval
【6月更文挑战第13天】JavaScript中的`setTimeout`和`setInterval`是异步编程的关键工具,用于按计划执行代码。`setTimeout`在延迟后执行一次,而`setInterval`则周期性执行。常见问题包括忘记清除定时器导致内存泄漏,递归使用`setTimeout`可能引发无限递归,以及字符串代码执行的安全隐患。解决方法包括使用`clearTimeout`和`clearInterval`,设置递归终止条件,以及优先使用函数表达式。理解定时器的非精确性并采用错误处理策略也是实践中的重要技巧。通过示例展示了如何延迟显示消息和周期性打印计数。
88 2
|
JavaScript 前端开发
js 定时器用法详解——setTimeout()、setInterval()、clearTimeout()、clearInterval()
写在前面: 在js应用中,定时器的作用就是可以设定当到达一个时间来执行一个函数,或者每隔几秒重复执行某段函数。这里面涉及到了三个函数方法:setInterval()、setTimeout()、clearInterval(),本文将围绕这三种函数的用法,来实现定时器的功能,需要的朋友可以过来参考下,喜欢的可以点波赞,或者关注一下本人,希望对大家有所帮助。 定时器的应用需求: 1.设定一个时间,当时间到达的时候执行函数————比如:倒计时跳转页面等等。 2.每隔一段时间重复执行某段函数————比如抢票软件,比如设定500毫秒就重复刷新一次页面等等。 倒计时跳转实现demo:
635 0
js 定时器用法详解——setTimeout()、setInterval()、clearTimeout()、clearInterval()
|
JavaScript
js中两种定时器,setTimeout和setInterval的区别
js中两种定时器,setTimeout和setInterval的区别
83 0