利用定时器和延时器来完成打地鼠游戏的案例
< !DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Whack A Mole !</title>
<link href='reset.css' rel='stylesheet' type='text/css'>
<link rel="stylesheet" href="style.css">
</head>
<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>
</body>
<script>
let score = document.querySelector('.score')
let start = document.querySelector('button')
let moles = document.querySelectorAll('.mole')
let gameStatus = document.querySelector('.game-status')
start.addEventListener('click', function () {
let temp = null
let flag = true
let timeId = setInterval(function () {
flag = true
start.style.display = 'none'
let random = parseInt(Math.random() * moles.length)
moles[random].style.top = '0'
temp = setTimeout(function () {
moles[random].style.top = '70%'
}, 800);
}, 1000)
setTimeout(function () {
clearInterval(timeId)
start.style.display = 'block'
}, 10000)
let count = 0
moles.forEach(function (ele, index) {
ele.addEventListener('click', function () {
if (flag) {
flag = false
count++
score.innerHTML = count
ele.style.top = '70%'
clearTimeout(temp)
}
})
});
})
</script>
</html>