Promise 实现红绿灯实例
来源:互联网 发布:传奇db数据负重是哪项 编辑:程序博客网 时间:2024/04/29 11:29
要求
- 使用promise 实现红绿灯颜色的跳转
- 绿灯执行三秒后
- 黄灯执行四秒后
- 红灯执行五秒
html 实现如下:
<ul id="traffic" class=""> <li id="green"></li> <li id="yellow"></li> <li id="red"></li></ul>
定义一个空类,之后再js中操作对应的类名即可实现相关的效果。
CSS实现如下:
ul { position: absolute; width: 200px; height: 200px; top: 50%; left: 50%; transform: translate(-50%,-50%);} /*画3个圆代表红绿灯*/ ul >li { width: 40px; height: 40px; border-radius:50%; opacity: 0.2; display: inline-block; } /*执行时改变透明度*/ ul.red >#red, ul.green >#green, ul.yellow >#yellow{ opacity: 1.0; } /*红绿灯的三个颜色*/ #red {background: red;} #yellow {background: yellow;} #green {background: green;}
javascript原理:
- promise函数为一个异步操作函数,在函数运行结束时可以使用then()方法。我们再在promise函数内部设置延迟执行即可实现。
js 代码如下:
function timeout(timer){ return function(){ return new Promise(function(resolve,reject){ setTimeout(resolve,timer) }) } } var green = timeout(3000); var yellow = timeout(4000); var red = timeout(5000); var traffic = document.getElementById("traffic"); (function restart(){ 'use strict' //严格模式 console.log("绿灯"+new Date().getSeconds()) //绿灯执行三秒 traffic.className = 'green'; green() .then(function(){ console.log("黄灯"+new Date().getSeconds()) //黄灯执行四秒 traffic.className = 'yellow'; return yellow(); }) .then(function(){ console.log("红灯"+new Date().getSeconds()) //红灯执行五秒 traffic.className = 'red'; return red(); }).then(function(){ restart() }) })();
Demo 请点击这里!
阅读全文
0 0
- Promise 实现红绿灯实例
- Promise红绿灯
- 红绿灯
- 红绿灯
- C语言信号量实现红绿灯
- FPGA实现可综合红绿灯设计
- 一个使用CC2530实现的Zigbee红绿灯
- 树莓派用GPIO实现模拟交通红绿灯
- 前端要给力之:红绿灯大战中的火星生命-Promise
- Python开发实例:TPYBoard开发板DIY红绿灯
- chrome 原生promise 实现 promise.map
- 解析 Promise 原理,实现一个Promise
- 【入门】promise的实现
- Promise实现原理
- Promise简单实现
- Promise实现的lazyman
- Promise 简单实现
- js promise实现笔记
- 设计模式在游戏中的运用(工厂模式)
- MySQL中的游标
- 爱迈分享 海量淘宝天猫优惠券网站微信公众号自主搜索 再也不用加入烦人的QQ微信群了
- MySQL的存储引擎
- html之NaN解析
- Promise 实现红绿灯实例
- MySQL事务机制及事务隔离
- 使用live555实时播放rtsp
- Java中继承机制为什么要使用extend…
- Java中的绑定
- 构造方法的调用顺序
- GKGameModelUpdate
- Java经典习题(一)
- mysql修改事务隔离级别