Visitar URL original
Complete JS Drum Kit · wesbos/JavaScript30@09d0be4 · GitHub
Skip to content

Commit 09d0be4

Browse files
Sean Hoar DevSean Hoar Dev
authored andcommitted
Complete JS Drum Kit
1 parent 45e08db commit 09d0be4

2 files changed

Lines changed: 27 additions & 0 deletions

File tree

‎01 - JavaScript Drum Kit/index-START.html‎

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,25 @@
5858
<audio data-key="76" src="sounds/tink.wav"></audio>
5959

6060
<script>
61+
62+
function playSound(e) {
63+
const audio = document.querySelector(`audio[data-key="${e.keyCode}"]`);
64+
const key = document.querySelector(`.key[data-key="${e.keyCode}"]`);
65+
if(!audio) return;
66+
audio.currentTime=0;
67+
audio.play();
68+
key.classList.add('playing');
69+
}
6170

71+
function removeTransition(e) {
72+
if(e.propertyName !== 'transform')return;//skip if it's not a transform
73+
this.classList.remove('playing');
74+
}
75+
76+
const keys = document.querySelectorAll('.key');
77+
keys.forEach(key => key.addEventListener('transitionend', removeTransition));
78+
79+
window.addEventListener('keydown', playSound);
6280
</script>
6381

6482

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
<!DOCTYPE html>
2+
<header>
3+
<meta name="charset" content="utf-8">
4+
<title>js drum kit</title>
5+
</header>
6+
<body>
7+
8+
</body>
9+
</html>

0 commit comments

Comments
 (0)