1. 获取相关元素
1.1 开始按钮
1.2 分数框
1.3 所有的地鼠洞
2. 给开始按钮定义函数startGame
2.1 隐藏开始按钮
2.2 清除分数为0: 允许多次玩
2.3 开启定时器: 间隔时间自定义
2.3.1 获取随机整数: 0-地鼠洞长度之间
2.3.2 给随机数对应的地鼠洞添加up类(显示地鼠)
2.3.3 给当前地鼠洞增加一个延时器: 到时自动清除up类(隐藏地鼠)
3. 给所有的地鼠(mole)增加点击事件
3.1 获取所有的地鼠
3.2 给所有的地鼠绑定点击事件
3.3 干掉地鼠对应的洞的类up
3.4 增加分数的数量
3.5 清理地鼠所在洞本身的延时器
<body>
<h1>Whack-a-mole! <span class="score">0</span></h1>
<p><button>Start</button></p>
<div class="game">
<div class="hole hole1">
<div class="mole"></div>
</div>
<div class="hole hole2">
<div class="mole"></div>
</div>
<div class="hole hole3">
<div class="mole"></div>
</div>
<div class="hole hole4">
<div class="mole"></div>
</div>
<div class="hole hole5">
<div class="mole"></div>
</div>
<div class="hole hole6">
<div class="mole"></div>
</div>
</div>
<h2 class="game-status"></h2>
<script>
window.addEventListener('load', function () {
let Start = document.querySelector('button')
let moles = document.querySelectorAll('.mole')
let score = document.querySelector('.score')
Start.addEventListener('click', function () {
Start.style.display = 'none'
let total = 0
let tid
let flag = true
let timeId = setInterval(function () {
flag = true
let num = parseInt(Math.random() * moles.length)
moles[num].style.top = '0%'
tid = setTimeout(function () {
moles[num].style.top = '70%'
}, 1000)
}, 1000)
moles.forEach(function (v, i) {
v.addEventListener('click', function () {
if (flag == true) {
flag = false
total++
score.innerHTML = total
v.style.top = '70%'
clearTimeout(tid)
}
})
})
setTimeout(function () {
clearInterval(timeId)
Start.style.display = 'block'
}, 11000)
})
})
</script>
</body>