• 售前

  • 售后

热门帖子
入门百科

Javascript实现打鼓结果

[复制链接]
13471756666 显示全部楼层 发表于 2021-10-25 20:07:43 |阅读模式 打印 上一主题 下一主题
本文实例为大家分享了Javascript实现打鼓结果的具体代码,供大家参考,具体内容如下

按住相应的键盘显示差别的声音
  1. <div class="keys">
  2.   <div data-key="65" class="key">
  3.    <kbd>A</kbd>
  4.    <span class="sound">clap</span>
  5.   </div>
  6.   <div data-key="83" class="key">
  7.    <kbd>S</kbd>
  8.    <span class="sound">hihat</span>
  9.   </div>
  10.   <div data-key="68" class="key">
  11.    <kbd>D</kbd>
  12.    <span class="sound">kick</span>
  13.   </div>
  14.   <div data-key="70" class="key">
  15.    <kbd>F</kbd>
  16.    <span class="sound">openhat</span>
  17.   </div>
  18.   <div data-key="71" class="key">
  19.    <kbd>G</kbd>
  20.    <span class="sound">boom</span>
  21.   </div>
  22.   <div data-key="72" class="key">
  23.    <kbd>H</kbd>
  24.    <span class="sound">ride</span>
  25.   </div>
  26.   <div data-key="74" class="key">
  27.    <kbd>J</kbd>
  28.    <span class="sound">snare</span>
  29.   </div>
  30.   <div data-key="75" class="key">
  31.    
  32.    <kbd>K</kbd>
  33.    <span class="sound">tom</span>
  34.   </div>
  35.   <div data-key="76" class="key">
  36.    <kbd>L</kbd>
  37.    <span class="sound">tink</span>
  38.   </div>
  39.   </div>
  40.   <audio data-key="65" src="sounds/clap.wav"></audio>
  41.   <audio data-key="83" src="sounds/hihat.wav"></audio>
  42.   <audio data-key="68" src="sounds/kick.wav"></audio>
  43.   <audio data-key="70" src="sounds/openhat.wav"></audio>
  44.   <audio data-key="71" src="sounds/boom.wav"></audio>
  45.   <audio data-key="72" src="sounds/ride.wav"></audio>
  46.   <audio data-key="74" src="sounds/snare.wav"></audio>
  47.   <audio data-key="75" src="sounds/tom.wav"></audio>
  48.   <audio data-key="76" src="sounds/tink.wav"></audio>
复制代码
css部门:
  1. html {
  2. font-size: 10px;
  3. background: url('../img/background.jpg') bottom center;
  4. background-size: cover;
  5. }
  6. body,html {
  7. margin: 0;
  8. padding: 0;
  9. font-family: sans-serif;
  10. }
  11. .keys {
  12. display: flex;
  13. flex: 1;
  14. min-height: 100vh;
  15. align-items: center;
  16. justify-content: center;
  17. }
  18. .key {
  19. border: .4rem solid black;
  20. border-radius: .5rem;
  21. margin: 1rem;
  22. font-size: 1.5rem;
  23. padding: 1rem .5rem;
  24. transition: all .07s ease;
  25. width: 10rem;
  26. text-align: center;
  27. color: white;
  28. background: rgba(0,0,0,0.4);
  29. text-shadow: 0 0 .5rem black;
  30. }
  31. .playing {
  32. transform: scale(1.1);
  33. border-color: #ffc600;
  34. box-shadow: 0 0 1rem #ffc600;
  35. }
  36. kbd {
  37. display: block;
  38. font-size: 4rem;
  39. }
  40. .sound {
  41. font-size: 1.2rem;
  42. text-transform: uppercase;
  43. letter-spacing: .1rem;
  44. color: #ffc600;
  45. }
复制代码
第一步实现按下键盘实现,声音的播放
  1. window.addEventListener("keydown",function(e){
  2.    console.log(e.keyCode);
  3.    const audio=document.querySelector(`audio[data-key="${e.keyCode}"]`);
  4.    const key=document.querySelector(`div[data-key="${e.keyCode}"]`)
  5.    //每次播放完初始化
  6.     if (!audio) return;
  7.     audio.currentTime = 0;
  8.     audio.play();
  9.      key.classList.add('playing');
  10.      setTimeout(function(){
  11.      key.classList.remove('playing');
  12.      },70);
  13.    
  14.     //按键之后移出效果
  15. })
复制代码
keyCode对应图


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

帖子地址: 

回复

使用道具 举报

分享
推广
火星云矿 | 预约S19Pro,享500抵1000!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

草根技术分享(草根吧)是全球知名中文IT技术交流平台,创建于2021年,包含原创博客、精品问答、职业培训、技术社区、资源下载等产品服务,提供原创、优质、完整内容的专业IT技术开发社区。
  • 官方手机版

  • 微信公众号

  • 商务合作