到了最後一天,感受到現在都看得懂在幹嘛了,也可以看一些其他javascript的討論,但要實際想出來還是好難啊!!! 考完再來練練幾個我覺得很棒的題目,並試著用jQuery寫寫看。
const arrow = document.querySelector('.arrow');
const speed = document.querySelector('.speed-value');
navigator.geolocation.watchPosition((data) => {
console.log(data);
speed.textContent = data.coords.speed;
arrow.style.transform = `rotate(${data.coords.heading}deg)`;
}, (err) => {
console.err(err);
alert('HEY! YOU GOTTA ALLOW THAT TO HAPPEN!!!');
});
const holes = document.querySelectorAll('.hole')
const scoreBoard = document.querySelector('.score')
const moles = document.querySelectorAll('.mole')
let lastHole, timeUp = false, score = 0
function randomTime(min, max) {
return Math.round(Math.random()*(max - min ) + min)
}
function randomHole(holes) {
const idx = Math.floor(Math.random()*holes.length)
const hole = holes[idx]
if (lastHole === hole) {
return randomHole(holes)
}
lastHole = hole
return hole
}
function peep() {
const time = randomTime(200,1000)
const hole = randomHole(holes)
hole.classList.add('up')
setTimeout(()=>{
hole.classList.remove('up')
if(!timeUp){peep()}
}, time)
}
function startGame() {
scoreBoard.textContent = 0
timeUp = false
score = 0
peep()
setTimeout(()=>{
timeUp = true
}, 10000)
}
function hit(e) {
if(!e.isTrusted){
scoreBoard.textContent = 'cheated'
return
}
score++
this.classList.remove('up')
scoreBoard.textContent = score
}
moles.forEach(mole => mole.addEventListener('click', hit))
真的很感謝Wes Bos ,教得很棒,推薦給所有要上不上,要下不下的新手們。
明天先來看看其他人的專案,想要好好學學Rxjs, vue 等把javascript更清楚。
考試將近,可能一天複習一個小的。考完後應該有些文章就完賽了,先把別人的鐵人看完。
最後想要用至少5天學會基本的D3.js 基本,未來小作品可能會需要。