【JS30-1】JavaScript Drum Kit

閱讀時間約 2 分鐘
raw-image


想要找個地方記錄自己寫 JavaScript 30 挑戰時額外的小筆記
寫得很隨興,如果路過不小心看到請當作什麼都沒看到🙈
JavaScript30 傳送門:https://javascript30.com/
第一個挑戰是寫一個 keydown 事件並讓頁面隨著不同的按鍵發出不同的聲音。


Play()


在挑戰中寫到了以下這段程式碼:

<script>
window.addEventListener('keydown', (e)=>{
const audio = document.querySelector(`audio[data-key="${e.keyCode}"]`)
audio.play()
})
</script>


突然很好奇,play() 是誰提供的 API?為什麼寫了 play(),就能播放音擋了?

查了 MDN,在 Web APIs > HTMLMediaElement 找到了:

The HTMLMediaElement interface adds to HTMLElement the properties and methods needed to support basic media-related capabilities that are common to audio and video.
(HTMLMediaElement 介面為 HTMLElement 新增了支援音訊和視訊常見的基本媒體相關功能所需的屬性和方法。)




transitionend 事件


在挑戰中,需要在為 div 加上 className 後再移除,因此寫到了:

addEventListener("transitionend", removeTransition);


才知道原來有 CSS 過渡相關的 event,包含但不限:

  1. transitionrun
  2. transitionstart
  3. transitionend

這三個 event,分別會在 CSS transition 前、開始、結束後執行。



    1會員
    6內容數
    肚子餓了
    留言0
    查看全部
    發表第一個留言支持創作者!
    你可能也想看
    JS 觀念贖罪之旅:作用域 scope認識 JavaScript 作用域、var、let、const 以及 hoisting
    Thumbnail
    avatar
    蕭宇廷
    2024-02-24
    JS年貨大街邀逾10家品牌進駐,吃喝玩樂通通有!辦年貨同時響應公益 文、圖/傑思·愛德威提供   農曆新年將至,家家戶戶開始辦年貨,傑思·愛德威直接把年貨大街搬到公司,提前感受滿滿年味。「JS年貨大街」一條龍包辦過年會遇到的所有「吃」「喝」「玩」「樂」,像是除夕圍爐必吃的佛跳牆、拜年伴手禮、美妝保養品、果乾零嘴、醫美療程、旅遊行程等,通通都能在JS年貨大街一網
    Thumbnail
    avatar
    廣告雜誌
    2024-02-06
    JS 筆記 | callback, promise, async/await 的前世今生JavaScript callback, promise, async-await
    Thumbnail
    avatar
    Jeremy Ho
    2023-11-13
    【JS 學習筆記】箭頭函式與 this本文討論了箭頭函式 (arrow function) 對於 this 關鍵字的影響。
    Thumbnail
    avatar
    蕭宇廷
    2023-11-01
    JS 筆記 | String 操作篇String 基本操作方法
    Thumbnail
    avatar
    Jeremy Ho
    2023-10-09
    JS 筆記 | Object 操作篇JavaScript Object 基礎操作筆記
    Thumbnail
    avatar
    Jeremy Ho
    2023-10-08
    JS 筆記 | Array 操作篇JavaScript Array 基本操作筆記
    Thumbnail
    avatar
    Jeremy Ho
    2023-10-08
    挑戰 JS30 #3 - CSS Variables本次的挑戰是「CSS Variables」,需要達成的目標是:「使用者操作拉桿或是選色器時,底下圖片的樣式會有對應的變化。」
    Thumbnail
    avatar
    傑米
    2023-09-04
    挑戰 JS30 #2 - CSS + JS Clock本次的挑戰是「CSS + JS Clock」,需要達成的目標是:「時鐘的指針會轉動,指針都必須依據現實時鐘的規則前進。」這次需要搭配 CSS 動畫,製作時鐘的指針旋轉效果。
    Thumbnail
    avatar
    傑米
    2023-09-03
    挑戰 JS30 #1 - JavaScript Drum Kit這系列文章會記錄 JS 30 當次挑戰時使用到的語法和相關知識。JS 30 官方有提供所有製作網頁的資源,不需要任何事前準備,就能無痛開始撰寫 JS,寫完之後還有 JS 30 作者提供的解答,不知道怎麼下手時可以參考、寫完之後也能了解更多解法,改善自己的寫法。
    Thumbnail
    avatar
    傑米
    2023-09-02