大家好~我是姐姐恩!身為資訊小白的我,起初對於參賽主題非常苦惱,最後決定利用此次機會,延續學校的課(Java),了解網頁前端三劍客之一的JavaScript!
所以接下來30天,我將在這裡紀錄我當天的學習筆記及統整後的學習內容,請大家多多指教!
*學習內容主要取自MDN Web Docs及彭彭老師的YT課程。
事件:只網頁上一件事情的發生,如click點擊、mouseover滑鼠移入、mouseout滑鼠移出、mousedown滑鼠按下等等。
事件處理的三個關鍵:在哪個標籤上發生事件、事件的種類為何、事件對應的處理函式。
//基本語法
<div 事件名稱="程式碼"> 標籤內文 </div>
<button 事件名稱="程式碼"> 標籤內文 </button>
跟著影片練習:
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta charset="utf-8" />
<title>JavaScript : 事件處理</title>
<style>
.btn{
background-color: #ffcccc;
padding:5px;border-radius: 5px;
cursor: pointer;
}
</style>
</head>
<body>
<h3>事件處理練習</h3>
<!-- <button onclick="console.log('點擊事件');"
onmouseover="console.log('滑鼠移入');"
onmouseout="console.log('滑鼠移出');"
onmousedown="console.log('滑鼠按住');"
onmouseup="console.log('滑鼠放開');"
> 點我 </button> -->
<span
class="btn"
onmouseover="over(this);"
onmouseout="out(this);"
onmousedown="down(this);"
onmouseup="up(this);"
>按鈕一</span>
<span
class="btn"
onmouseover="over(this);"
onmouseout="out(this);"
onmousedown="down(this);"
onmouseup="up(this);"
>按鈕二</span>
<script>
function over(elem){
elem.style.backgroundColor="#ddaaaa";
}
function out(elem){
elem.style.backgroundColor="#ffcccc";
}
function down(elem){
elem.style.fontWeight="bold";
}
function up(elem){
elem.style.fontWeight="normal";
}
</script>
</body>
</html>
印出:
(將滑鼠放至按鈕上)
(點擊的當下)
指的是當Event Handling執行事件處理函式時,決定事件處理的順序,是從DOM root得根節點往下傳播至目標節點去處理事件,而事件處理完成後,會在像泡泡一樣,沿途向上飄回根節點,其中在向下傳遞的過程,則稱為Event Capture階段。
學習資源:
事件處理:如何在網頁中加入互動
Event bubbling
JavaScript Event Handling 事件處理 - Front End 網頁前端工程教學
[教學] 瀏覽器事件:Event Bubbling, Event Capturing 及 Event Delegation