红绿灯
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<style>
div {
width: 100px;
height: 279px;
background: url(deng.jpg);
}
</style>
</head>
<body>
<!-- 原生红绿灯 -->
<!-- 问题是:在实现多个红绿灯时,要反复添加js代码。 -->
<!-- <div id="box1"></div>
<script>
var box1 = document.getElementById("box1");
var singal = 0;
box1.onclick = function() {
singal++;
if (singal > 2) {
singal = 0;
}
box1.style.backgroundPosition = -100 * singal + "px 0px";
}
</script> -->
<!-- 面向对象实现红绿灯 -->
<script>
// 构造函数
function HongLvDeng() {
this.dom = null;
this.singal = 0;
this.init(); //初始化
this.bindEvent(); // 监听事件
}
HongLvDeng.prototype.init = function() {
this.dom = document.createElement("div");
document.body.appendChild(this.dom);
}
HongLvDeng.prototype.bindEvent = function() {
var _self = this;
this.dom.onclick = function() {
// this------事件源
_self.singal++;
if (_self.singal > 2) {
_self.singal = 0;
}
this.style.backgroundPosition = -100 * _self.singal + "px 0px";
}
}
new HongLvDeng();
</script>
</body>
</html>