講者:蔡孟軒
日期:2021/12/8
<!DOCTYPE html>
<html>
<head>
<title>Example</title>
</head>
<body>
<div>
<h1>這是標題</h1>
<p class="text">第一行</p>
<p class="text">第二行</p>
<p class="text">第三行</p>
<p class="text">第四行</p>
</div>
</body>
</html>let a = document.querySelector(".text")
// 找出 classname 是 text 的 HTML 元素
// <p class="text">第一行</p>let a = document.querySelectorAll(".text");
// 找出 classname 是 text 的 HTML 元素
// NodeList(4) [p.text, p.text, p.text, p.text]
console.log(a[1]);
// <p class="text">第二行</p>function functionName(parameter1, parameter2, ...) {
// statements
// return value;
}(parameter1, parameter2, ...) => {statements;}
(parameter1, parameter2, ...) => value;
// 等於(parameter1, parameter2, ...) => { return value; }function randomTime(min, max) {
return Math.round(Math.random() * (max - min) + min);
}const holes = document.querySelectorAll(".hole");
// [div.hole.hole1, div.hole.hole2, div.hole.hole3, div.hole.hole4, div.hole.hole5, div.hole.hole6]
const scoreBoard = document.querySelector(".score");
// <span class="score">0</span>
const moles = document.querySelectorAll(".mole");
// [div.mole, div.mole, div.mole, div.mole, div.mole, div.mole]0: div.mole1: div.mole2: div.mole3: div.mole4: div.mole5: div.molelength: 6__proto__: NodeList
let lastHole;
// 紀錄地鼠上次出現的位置function randomHole(holes) {
const idx = Math.floor(Math.random() * holes.length);
const hole = holes[idx];
if (hole === lastHole){
console.log("重複出現啦");
return randomHole(holes);
}
lastHole = hole;
return hole;
}let timeUp = false;
function peep(){
const time = randomTime(500, 2000);
const hole = randomHole(holes);
hole.classList.add("up");
setTimeout(() => {
hole.classList.remove("up");
if (!timeUp) {
peep()
}
}, time)
}let score = 0;
function startGame() {
scoreBoard.textContent = 0;
timeUp = false;
score = 0;
peep();
setTimeout(() => (timeUp = true), 30000);
}function bonk(e) {
if (!e.isTrusted) return;
score++;
this.parentNode.classList.remove("up");
scoreBoard.textContent = score;
}
moles.forEach(mole => mole.addEventListener('click', bonk));function paddingLeft(str, lenght) {
if (str.length >= lenght) {
return str;
} else {
return paddingLeft("0" + str, lenght);
}
}function displayTimeLeft(seconds) {
const minutes = Math.floor(seconds / 60);
const remainderSeconds = seconds % 60;
const display = `${paddingLeft(minutes.toString(), 2)}:${paddingLeft(remainderSeconds.toString(),2)}`;
timerDisplay.textContent = display;
}const timerDisplay = document.querySelector(".controllPanel span");
let countdown;
function timer(seconds) {
clearInterval(countdown);
displayTimeLeft(seconds);
countdown = setInterval(() => {
seconds--;
if (seconds < 0) {
clearInterval(countdown);
return;
}
displayTimeLeft(seconds);
}, 1000);
}function startGame() {
timer(30); // 增加
}