JavaScript30 따라하기

1. drum kit

url : https://javascript30.com/


코드

function play(event) {
  const key = document.querySelector(`div[data-key="${event.keyCode}"]`);
  const audio = document.querySelector(`audio[data-key="${event.keyCode}"]`);

  audio.play(); //해당 오디오 태그 플레이
  audio.currentTime = 0; //플레이 후 초기화

  key.classList.add("playing"); //해당 key의 class에 .playing추가
  setTimeout(() => {
    // 50ms 후에 .playing 제거
    key.classList.remove("playing");
  }, 50);
}
window.addEventListener("keydown", play); // window. 으로 이벤트 리스너 추가가능

알게된 점

  • div[data-key="${event.keyCode}"] 와 같이 태그안에 data-** 을 통해 값을 지정해주고 배열에서 가져오듯이 인덱스 값으로 해당 태그만 가져올 수 있다.