JavaScript Drum Kit 指南(纯 JS 模拟敲鼓效果)

前端之家收集整理的这篇文章主要介绍了JavaScript Drum Kit 指南(纯 JS 模拟敲鼓效果)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

核心代码

function removeTransition(event) { if (event.propertyName !== 'transform') return; // 过滤其中一种事件 event.target.classList.remove('playing'); // 移除高亮的样式 }

function playSound(event) {
const audio = document.querySelector(au<a href="https://www.jb51.cc/tag/dio/" target="_blank" class="keywords">dio</a>[data-key="${event.keyCode}"]); // 根据触发按键的键码,获取对应音频
const key = document.querySelector(div[data-key="${event.keyCode}"]); // 获取页面对应按钮 DIV 元素
if (!audio) return; // 处理无效的按键事件

key.classList.add('playing'); // 改变样式
audio.currentTime = 0; // 每次播放之后都使音频播放进度归零
audio.play(); // 播放相应音效
}

const keys = Array.from(document.querySelectorAll('.key')); // 获取页面所有按钮元素
keys.forEach(key => key.addEventListener('transitionend',removeTransition)); // 添加 transition 事件监听
window.addEventListener('keydown',playSound);

中文版本完整代码

<Meta charset="UTF-8"> JS Drum Kit

<div class="keys">
<div data-key="65" class="key">
A
<span class="sound">clap

S
D
F
G
H
J
K
L

<audio data-key="65" src="sounds/clap.wav">
<audio data-key="83" src="sounds/hihat.wav">
<audio data-key="68" src="sounds/kick.wav">
<audio data-key="70" src="sounds/openhat.wav">
<audio data-key="71" src="sounds/boom.wav">
<audio data-key="72" src="sounds/ride.wav">
<audio data-key="74" src="sounds/snare.wav">
<audio data-key="75" src="sounds/tom.wav">
<audio data-key="76" src="sounds/tink.wav">

英文版本完整代码:

JS Drum Kit

<div class="keys">
<div data-key="65" class="key">
A
<span class="sound">clap

S
D
F
G
H
J
K
L

<audio data-key="65" src="sounds/clap.wav">
<audio data-key="83" src="sounds/hihat.wav">
<audio data-key="68" src="sounds/kick.wav">
<audio data-key="70" src="sounds/openhat.wav">
<audio data-key="71" src="sounds/boom.wav">
<audio data-key="72" src="sounds/ride.wav">
<audio data-key="74" src="sounds/snare.wav">
<audio data-key="75" src="sounds/tom.wav">
<audio data-key="76" src="sounds/tink.wav">

在线演示地址:

请在chrome浏览器下查看效果

原文链接:https://www.f2er.com/js/37643.html

猜你在找的JavaScript相关文章