JavaScript 01 — Drum Kit

实现效果

利用JS实现模拟打鼓的效果,敲击键盘字母(A-L),即可播放对应声音,同时当前字母伴随敲击声效出现动画。

在这里插入图片描述

<script>
  // 1、按键按下后 全局获取按键 和音频标签
  // 2、获取按键后 按下按键 按键播放音频 同时按键样式变化
  // 3、按键样式变化完后 恢复到最初状态

  function playSound(e) {
    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')
  }

  function removePlaying(e) {
    console.log(e);
    if (e.propertyName !== 'transform') return
    this.classList.remove('playing')  // this代表当前控制的按键对象
    // console.log(this);
  }

  const keys = document.querySelectorAll('.key')
  // 按键样式变化完成 要想恢复到最初状态 就要获取所有的按键(即遍历按键) 
  // 查出(即监听)哪个按键已经变化完 再让它恢复(写函数)
  keys.forEach(key => {
    key.addEventListener('transitionend', removePlaying)
  });

  window.addEventListener('keydown', playSound)
</script>

<!-- 
  keydown 键按下的过程
  keypress 键被按下
  keyup 键被松开

  const声明一个只读的常量 一旦声明不可改变 并且要立即初始化
 -->
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值