JavaScript爵士鼓指南(纯JS模拟敲鼓效果)

  

核心代码:

        & lt; script>   函数removeTransition(事件){   如果事件。propertyName !==氨浠弧?返回;//过滤其中一种事件   event.target.classList.remove(“玩”);//移除高亮的样式   }      函数playSound(事件){   const音频=document.querySelector(“音频(数据键=" $ {event.keyCode} ") ");//根据触发按键的键码,获取对应音频   const关键=document.querySelector (“div[数据键=" $ {event.keyCode} ") ");//获取页面对应按钮DIV元素   如果(音频)返回;//处理无效的按键事件      key.classList.add(“玩”);//改变样式   音频。currentTime=0;//每次播放之后都使音频播放进度归零   audio.play ();//播放相应音效   }      const键=Array.from (document.querySelectorAll ('。key '));//获取页面所有按钮元素   钥匙。forEach(关键=比;关键。addEventListener (transitionend, removeTransition));//添加过渡事件监听   窗口。addEventListener (keydown, playSound);   & lt;/script>      

中文版本完整代码:

        & lt; !DOCTYPE html>   & lt; html lang=癳n”比;   & lt; head>   & lt;元charset=皍tf - 8”比;   & lt; title> JS鼓Kit   & lt;链接rel="样式表" href=" https://www.yisu.com/zixun/style.css " rel=巴獠縩ofollow”rel=巴獠縩ofollow”比;   & lt;/head>   & lt; body>         & lt; div类="钥匙"比;   & lt; div数据键=?5”class=肮丶北?   & lt; kbd> A   & lt;跨类="声音"祝辞clap   & lt;/div>   & lt; div数据键=?3”class=肮丶北?   & lt; kbd> S   & lt;跨类="声音"祝辞hihat   & lt;/div>   & lt; div数据键=?8”class=肮丶北?   & lt; kbd> D   & lt;跨类="声音"祝辞kick   & lt;/div>   & lt; div数据键=?0”class=肮丶北?   & lt; kbd> F   & lt;跨类="声音"祝辞openhat   & lt;/div>   & lt; div数据键=?1”class=肮丶北?   & lt; kbd> G   & lt;跨类="声音"祝辞boom   & lt;/div>   & lt; div数据键=?2”class=肮丶北?   & lt; kbd> H   & lt;跨类="声音"祝辞ride   & lt;/div>   & lt; div数据键=?4”class=肮丶北?   & lt; kbd> J   & lt;跨类="声音"祝辞snare   & lt;/div>   & lt; div数据键=?5”class=肮丶北?   & lt; kbd> K   & lt;跨类="声音"祝辞tom   & lt;/div>   & lt; div数据键=?6”class=肮丶北?   & lt; kbd> L   & lt;跨类="声音"祝辞tink   & lt;/div>   & lt;/div>      & lt;音频数据键=" 65 " src=" https://www.yisu.com/zixun/sounds/clap.wav "祝辞& lt;/audio>   & lt;音频数据键=" 83 " src=" https://www.yisu.com/zixun/sounds/hihat.wav "祝辞& lt;/audio>   & lt;音频数据键=" 68 " src=" https://www.yisu.com/zixun/sounds/kick.wav "祝辞& lt;/audio>   & lt;音频数据键=" 70 " src=" https://www.yisu.com/zixun/sounds/openhat.wav "祝辞& lt;/audio>   & lt;音频数据键=" 71 " src=" https://www.yisu.com/zixun/sounds/boom.wav "祝辞& lt;/audio>   & lt;音频数据键=" 72 " src=" https://www.yisu.com/zixun/sounds/ride.wav "祝辞& lt;/audio>   & lt;音频数据键=" 74 " src=" https://www.yisu.com/zixun/sounds/snare.wav "祝辞& lt;/audio>   & lt;音频数据键=" 75 " src=" https://www.yisu.com/zixun/sounds/tom.wav "祝辞& lt;/audio>   & lt;音频数据键=" 76 " src=" https://www.yisu.com/zixun/sounds/tink.wav "祝辞& lt;/audio>      & lt; script>   函数removeTransition(事件){   如果事件。propertyName !==氨浠弧?返回;//过滤其中一种事件   event.target.classList.remove(“玩”);//移除高亮的样式   }      函数playSound(事件){   const音频=document.querySelector(“音频(数据键=" $ {event.keyCode} ") ");//根据触发按键的键码,获取对应音频   const关键=document.querySelector (“div[数据键=" $ {event.keyCode} ") ");//获取页面对应按钮DIV元素   如果(音频)返回;//处理无效的按键事件      key.classList.add(“玩”);//改变样式   音频。currentTime=0;//每次播放之后都使音频播放进度归零   audio.play ();//播放相应音效   }      const键=Array.from (document.querySelectorAll ('。key '));//获取页面所有按钮元素   钥匙。forEach(关键=比;关键。addEventListener (transitionend, removeTransition));//添加过渡事件监听   窗口。addEventListener (keydown, playSound);   & lt;/script>         & lt;/body>   & lt;/html>   

JavaScript爵士鼓指南(纯JS模拟敲鼓效果)