Javascript实现打鼓效果


Posted in Javascript onJanuary 29, 2021

本文实例为大家分享了Javascript实现打鼓效果的具体代码,供大家参考,具体内容如下

Javascript实现打鼓效果

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

<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实现打鼓效果

Javascript实现打鼓效果

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

Javascript 相关文章推荐
基于jQuery的投票系统显示结果插件
Aug 12 Javascript
原始XMLHttpRequest方法详情回顾
Nov 28 Javascript
JavaScript和JQuery的鼠标mouse事件冒泡处理
Jun 19 Javascript
jquery悬浮提示框完整实例
Jan 13 Javascript
微信小程序 textarea 组件详解及简单实例
Jan 10 Javascript
jQuery给表格添加分页效果
Mar 02 Javascript
浅谈vue引入css,less遇到的坑和解决方法
Jan 20 Javascript
r.js来合并压缩css文件的示例
Apr 26 Javascript
微信二次分享报错invalid signature问题及解决方法
Apr 01 Javascript
详解Vue源码中一些util函数
Apr 24 Javascript
详解vue中使用transition和animation的实例代码
Dec 12 Vue.js
SSM VUE Axios详解
Oct 05 Vue.js
JS实现点击掉落特效
Jan 29 #Javascript
Javascript实现关闭广告效果
Jan 29 #Javascript
Vue 实例中使用$refs的注意事项
Jan 29 #Vue.js
vue 项目@change多个参数传值多个事件的操作
Jan 29 #Vue.js
vue 实现click同时传入事件对象和自定义参数
Jan 29 #Vue.js
聊聊vue 中的v-on参数问题
Jan 29 #Vue.js
vue集成一个支持图片缩放拖拽的富文本编辑器
Jan 29 #Vue.js
You might like
PHP实现动态web服务器方法
2015/07/29 PHP
PHP常见数组函数用法小结
2016/03/21 PHP
php使用str_replace替换多维数组的实现方法分析
2017/06/15 PHP
PHP迭代器和迭代的实现与使用方法分析
2018/04/19 PHP
JavaScript的9个陷阱及评点分析
2008/05/16 Javascript
dwz 如何去掉ajaxloading具体代码
2013/05/22 Javascript
js调用后台servlet方法实例
2013/06/09 Javascript
json格式数据的添加,删除及排序方法
2016/01/21 Javascript
多种jQuery绑定事件的实现方式
2016/06/13 Javascript
Bootstrap学习笔记之环境配置(1)
2016/12/07 Javascript
Javascript快速实现浏览器系统通知
2017/08/26 Javascript
基于ES6 Array.of的用法(实例讲解)
2017/09/05 Javascript
vue插件开发之使用pdf.js实现手机端在线预览pdf文档的方法
2018/07/12 Javascript
简单了解微信小程序的目录结构
2019/07/01 Javascript
vue 设置 input 为不可以编辑的实现方法
2019/09/19 Javascript
vue实现简单计算商品价格
2020/09/14 Javascript
[01:00:49]DOTA2-DPC中国联赛 正赛 Ehome vs iG BO3 第二场 1月31日
2021/03/11 DOTA
Python enumerate索引迭代代码解析
2018/01/19 Python
python numpy格式化打印的实例
2018/05/14 Python
python 根据字典的键值进行排序的方法
2019/07/24 Python
python定位xpath 节点位置的方法
2019/08/27 Python
Python中*args和**kwargs的区别详解
2019/09/17 Python
python retrying模块的使用方法详解
2019/09/25 Python
python实现输出一个序列的所有子序列示例
2019/11/18 Python
python实现连续变量最优分箱详解--CART算法
2019/11/22 Python
python3中sys.argv的实例用法
2020/04/24 Python
iHerb香港:维生素、补充剂和天然保健品
2017/08/01 全球购物
惠普加拿大在线商店:HP加拿大
2017/09/15 全球购物
在线购买廉价折扣书籍和小说:BookOutlet.com
2018/02/19 全球购物
美国鲍勃商店:Bob’s Stores
2018/07/22 全球购物
表扬信格式
2014/01/12 职场文书
政法干警核心价值观心得体会
2014/09/11 职场文书
实习协议书范本
2014/09/25 职场文书
祝福语集锦:朋友新店开业祝福语
2019/12/10 职场文书
Python list去重且保持原顺序不变的方法
2021/04/03 Python
http通过StreamingHttpResponse完成连续的数据传输长链接方式
2022/02/12 Python