按住响应的键盘显示不同的声音

 <div class="keys"><div data-key="65" class="key"><kbd>A</kbd><span class="sound">clap</span></div><div data-key="83" class="key"><kbd>S</kbd><span class="sound">hihat</span></div><div data-key="68" class="key"><kbd>D</kbd><span class="sound">kick</span></div><div data-key="70" class="key"><kbd>F</kbd><span class="sound">openhat</span></div><div data-key="71" class="key"><kbd>G</kbd><span class="sound">boom</span></div><div data-key="72" class="key"><kbd>H</kbd><span class="sound">ride</span></div><div data-key="74" class="key"><kbd>J</kbd><span class="sound">snare</span></div><div data-key="75" class="key"><kbd>K</kbd><span class="sound">tom</span></div><div data-key="76" class="key"><kbd>L</kbd><span class="sound">tink</span></div></div><audio data-key="65" src="sounds/clap.wav"></audio><audio data-key="83" src="sounds/hihat.wav"></audio><audio data-key="68" src="sounds/kick.wav"></audio><audio data-key="70" src="sounds/openhat.wav"></audio><audio data-key="71" src="sounds/boom.wav"></audio><audio data-key="72" src="sounds/ride.wav"></audio><audio data-key="74" src="sounds/snare.wav"></audio><audio data-key="75" src="sounds/tom.wav"></audio><audio data-key="76" src="sounds/tink.wav"></audio>

css部分:

html {font-size: 10px;background: url('../img/background.jpg') bottom center;background-size: cover;
}body,html {margin: 0;padding: 0;font-family: sans-serif;
}.keys {display: flex;flex: 1;min-height: 100vh;align-items: center;justify-content: center;
}.key {border: .4rem solid black;border-radius: .5rem;margin: 1rem;font-size: 1.5rem;padding: 1rem .5rem;transition: all .07s ease;width: 10rem;text-align: center;color: white;background: rgba(0,0,0,0.4);text-shadow: 0 0 .5rem black;
}.playing {transform: scale(1.1);border-color: #ffc600;box-shadow: 0 0 1rem #ffc600;
}kbd {display: block;font-size: 4rem;
}.sound {font-size: 1.2rem;text-transform: uppercase;letter-spacing: .1rem;color: #ffc600;
}
  //第一步实现按下键盘实现,声音的播放window.addEventListener("keydown",function(e){console.log(e.keyCode);const audio=document.querySelector(`audio[data-key="${e.keyCode}"]`);const key=document.querySelector(`div[data-key="${e.keyCode}"]`)//每次播放完初始化if (!audio) return;audio.currentTime = 0;audio.play();key.classList.add('playing');setTimeout(function(){key.classList.remove('playing');},70);//按键之后移出效果})

keyCode对应图

Javascript模拟打鼓效果相关推荐

  1. Cocos Creator下JavaScript模拟射箭效果,附代码

    获取代码 关注微信公众号,发送[射箭]获取代码 效果预览 操作方法 点击屏幕,屏幕出现起始位置标志的圆点,不松开手指,滑动屏幕,控制力度和方向,移动距离越大,弓箭拉伸效果越大,松开以后,箭将沿着结束点 ...

  2. JavaScript模拟实现先进先出、先进后出效果

    JavaScript模拟实现先进先出.先进后出效果 JavaScript模拟实现先进先出.先进后出效果

  3. 模拟窗口效果 Jquery

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  4. JavaScript - 模拟键盘输入支付密码

    JavaScript - 模拟键盘输入支付密码 Max.Bai 2016-12-29 0x00: 发生了什么事 我做自动化测试的时候,需要自动化在页面上输入这个密码,什么样子的,看下面: 有没有很像支 ...

  5. 利用ECharts3来实现ECharts2实例中的模拟迁徙效果,即背景地图为百度地图。 标签: ECharts3Echarts2模拟迁徙百度地图引入

    利用ECharts3来实现ECharts2实例中的模拟迁徙效果,即背景地图为百度地图. 很多小伙伴都来要demo源码,现在我把demo放在我的GitHub上了. https://github.com/ ...

  6. javascript模拟点击事件--实现视频自动播放

    背景      这两年一直在做浏览器开发相关的工作,我们所做的浏览器禁用了视频自动播放功能,以实现视频预加载功能:浏览器在视频播放时为了实现视频秒开效果(就是一点击页面里的播放按钮就立即开始播放,而不 ...

  7. CSS:模拟下雪效果动画制作教程

    下雪效果只是一类效果的名称,可以是红包雨等一些自由落体的运动效果,本文就是用纯css模拟下雪的效果,更多效果大家可以自行发挥. 1.前言 由于公司产品的活动,需要模拟类似下雪的效果.浏览器实现动画无非 ...

  8. 纯css模拟下雪效果

    效果如其名,想必都见过下雪(可能南方人除外哈哈),但下雪效果只是一类效果的名称,可以是红包雨等一些自由落体的运动效果,本文就是用纯css模拟下雪的效果. 1.前言 由于公司产品的活动,需要模拟类似下雪 ...

  9. 利用ECharts3来实现ECharts2实例中的模拟迁徙效果,即背景地图为百度地图。 标签: ECharts3Echarts2模拟迁徙百度地图引入 2016-10-24 16:21 10065人阅

    利用ECharts3来实现ECharts2实例中的模拟迁徙效果,即背景地图为百度地图. 标签: ECharts3Echarts2模拟迁徙百度地图引入 2016-10-24 16:21  10065人阅 ...

最新文章

  1. eclipse安装maven
  2. WordPress.com使用JavaScript替换掉PHP
  3. 团队招人的笔试题,我的回答。
  4. ITK:获取图像中标记区域的几何属性
  5. Zuul:Pre和Post过滤器(下)
  6. [推荐]VMware Workstation 6.5虚拟机(汉化补丁+注册机+原版安装文件)
  7. python 大小端转换,大小端 python
  8. Google 已经实现即点即玩,国内 Android 何时跟上?
  9. IBM加入OpenOffice 贡献Lotus Notes程序代码
  10. 干货分享 | 免费下载文库下载器,学生党必备神器
  11. Excel如何删除表格中的空白列
  12. excel工作表限制编辑怎么删除
  13. 数字图像/视频处理MATLAB基本操作
  14. 黑苹果oc清除nvram_自己组装一台“iMac”是什么体验(下):AMD 平台也能吃上黑苹果...
  15. 桃词典 Peach Dictionary 简易英语词典app开发 安卓软件开发 Part 1
  16. 制造行业mes使用说明书_mes系统操作手册完整版.docx
  17. 欧拉角与旋转矩阵的转换关系
  18. python爬虫进阶-滑块验证码破解(bilibili)
  19. IDEA在Git中提交忽略文件的设置
  20. DNSPod十问吴欣鸿:美图公司的To B“大航海时代”

热门文章

  1. HiveQL逻辑执行顺序
  2. NextActions - wow自动施法按键助手
  3. oracle972,配置Oracle共享服务器
  4. NUC972---- VI编辑器的使用
  5. Python-opencv一键批量制作部门聘书(导入名单并在图片模板上加文字)
  6. Network: use `--host` to expose
  7. 《炬丰科技-半导体工艺》通过深紫外光刻胶进行化学渗透
  8. 随身WIFI debian安装docker
  9. web 文本溢出处理显示省略号
  10. python **幂次方