On this page
frontendjsjavascript30

01JavaScript Drum Kit

About 164 wordsLess than 1 minute

2024-02-03

使用按键控制 audio 标签发出声音。

键盘按下去的时候,获取到按键的 keycode,在获取到对应的标签。

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <div>
      <audio src="assets/drumroll.mp3" data-key="65"></audio>
      <audio src="assets/drumroll.mp3" data-key="83"></audio>
      <audio src="assets/drumroll.mp3" data-key="68"></audio>
      <audio src="assets/drumroll.mp3" data-key="70"></audio>
    </div>
    <script>
      window.addEventListener("keydown", function (e) {
        // console.log(e.key);
        console.log(e.keyCode);
        const audio = document.querySelector(`audio[data-key="${e.keyCode}"]`);
        console.log(audio);
        if (!audio) {
          return;
        }
        audio.currentTime = 0; // rewind the start
        audio.play();
      });
    </script>
  </body>
</html>

参考:JS keydown 键盘事件