要為我們的 HTML/CSS 網站增加互動性的話有五大步驟,
listen
到的使用者或是頁面事件的元素listener
元素分配功能 (自己要 listen 的事件)應用之前我們所學的, 網頁是由瀏覽器渲染出來的。我們添加 HTML 連結到 JS (類似於連結 CSS 文件的想法),並且瀏覽器會在加載 HTML/CSS 後執行 JS。
// template
<script src="filename"></script>
// example
<script src="example.js"></script>
<script>
tag 應該放在 HTML 頁面的 <head>
中code quality 不太理想
concerns
保存在單獨的文件中來分離內容、樣式表示和行為編寫由使用者事件 (user event)
驅動的程式
與 Java 不同的是,JS 沒有 main。在使用者與網頁互動過程中, JS 對使用者的動作做出回應稱為 事件 (event)
。
let name = document.getElementById("id");
document.getElementById 會 return 具有給定 id 元素的 DOM 物件
** 在給定 id 時, 要省略 #
element.addEventListener(event, function, useCapture)
// useCapture (Optional): true or false → default = false
// attaching a named function
element.addEventListener("click", handleFunction);
function handleFunction() {
// event handler code
}
JavaScript function 可以設置為 event handlers
(也稱為 callbacks
)
當你與元素互動並觸發事件 (event) 時,callback function 就會執行
最後讓我們用 event handler 來實做個簡單有趣的網頁吧!click
event :
HTML
<img id="pokeball" src="images/pokeball.jpg" alt="a pokeball" >
<button id="demo-btn">Click me!</button>
JavaScript
let demoButton = document.getElementById("demo-btn");
demoButton.addEventListener("click", changeImage);
function changeImage() {
let pokeballImg = document.getElementById("pokeball");
pokeballImg.src = "images/mystery.gif";
pokeballImg.alt = "mystery pokemon"
Before clicking the button:
After clicking the button:
有興趣的話, 可以進入這個連結來玩看看喔! https://ariel0122.github.io/pokeball.html