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 相关文章推荐
JS操作数据库的实例代码
Oct 17 Javascript
禁止iframe页面的所有js脚本如alert及弹出窗口等
Sep 03 Javascript
javascript基本类型详解
Nov 28 Javascript
jQuery+css3实现Ajax点击后动态删除功能的方法
Aug 10 Javascript
JavaScript代码实现禁止右键、禁选择、禁粘贴、禁shift、禁ctrl、禁alt
Nov 17 Javascript
小白谈谈对JS原型链的理解
May 03 Javascript
JavaScript实现图像模糊化的方法实例
Jan 15 Javascript
jquery使用iscorll实现上拉、下拉加载刷新
Oct 26 jQuery
使用live-server快速搭建本地服务器+自动刷新的方法
Mar 09 Javascript
微信小程序中使用ECharts 异步加载数据实现图表功能
Jul 13 Javascript
Vue + Element UI图片上传控件使用详解
Aug 20 Javascript
vue封装可复用组件confirm,并绑定在vue原型上的示例
Oct 31 Javascript
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连接access数据库
2008/03/27 PHP
解析左右值无限分类的实现算法
2013/06/20 PHP
php操作xml
2013/10/27 PHP
js加解密 脚本解密
2008/02/22 Javascript
ajax中get和post的说明及使用与区别
2012/12/23 Javascript
javascript对下拉列表框(select)的操作实例讲解
2013/11/29 Javascript
利用jquery写的左右轮播图特效
2014/02/12 Javascript
jQuery插件jPaginate实现无刷新分页
2015/05/04 Javascript
Webwork 实现文件上传下载代码详解
2016/02/02 Javascript
最佳的JavaScript错误处理实践
2016/07/16 Javascript
完美解决IE9浏览器出现的对象未定义问题
2016/09/29 Javascript
jQuery封装placeholder效果实现方法,让低版本浏览器支持该效果
2017/07/08 jQuery
Vue+webpack+Element 兼容问题总结(小结)
2018/08/16 Javascript
小程序云开发初探(小结)
2018/10/24 Javascript
详解vue-cli 2.0配置文件(小结)
2019/01/14 Javascript
使用webpack编译es6代码的方法步骤
2019/04/28 Javascript
移动端吸顶fixbar的解决方案详解
2019/07/17 Javascript
element-ui中Table表格省市区合并单元格的方法实现
2019/08/07 Javascript
element-ui 远程搜索组件el-select在项目中组件化的实现代码
2019/12/04 Javascript
Python时间戳与时间字符串互相转换实例代码
2013/11/28 Python
用Python制作简单的朴素基数估计器的教程
2015/04/01 Python
分析Python中设计模式之Decorator装饰器模式的要点
2016/03/02 Python
深入理解Python中的 __new__ 和 __init__及区别介绍
2018/09/17 Python
Python HTML解析模块HTMLParser用法分析【爬虫工具】
2019/04/05 Python
python程序快速缩进多行代码方法总结
2019/06/23 Python
用python wxpy管理微信公众号并利用微信获取自己的开源数据
2019/07/30 Python
Python爬取知乎图片代码实现解析
2019/09/17 Python
django使用xadmin的全局配置详解
2019/11/15 Python
英国排名第一的最新设计师品牌手表独立零售商:TIC Watches
2016/09/24 全球购物
英国买鞋网站:Charles Clinkard
2019/11/14 全球购物
C语言编程练习
2012/04/02 面试题
Prototype如何为一个Ajax添加一个参数
2015/12/06 面试题
《花的勇气》教后反思
2014/02/12 职场文书
求职简历自我评价2015
2015/03/10 职场文书
领导欢送会主持词
2015/07/06 职场文书
工作汇报材料难写?方法都在这里了!
2019/07/01 职场文书