Skip to content

Commit ac07ad1

Browse files
author
Kyle Bradshaw
committed
final sol'n KDB
1 parent 373ef05 commit ac07ad1

File tree

1 file changed

+34
-15
lines changed

1 file changed

+34
-15
lines changed

01 - JavaScript Drum Kit/index.html

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

6060
<script>
61-
window.addEventListener('keydown', function(e) {
62-
var key = document.querySelector(`.key[data-key="${e.keyCode}"]`);
63-
var keySound = document.querySelector(`audio[data-key="${e.keyCode}"]`);
64-
var audio = new Audio(keySound.src);
65-
if (key && keySound && audio) {
66-
audio.play();
67-
key.classList.add('playing');
68-
}
69-
});
70-
window.addEventListener('keyup', function(e) {
71-
var key = document.querySelector(`.key[data-key="${e.keyCode}"]`);
72-
if (key) {
73-
key.classList.remove('playing');
74-
}
75-
});
61+
// window.addEventListener('keydown', function(e) {
62+
// var key = document.querySelector(`.key[data-key="${e.keyCode}"]`);
63+
// var keySound = document.querySelector(`audio[data-key="${e.keyCode}"]`);
64+
// var audio = new Audio(keySound.src);
65+
// if (key && keySound && audio) {
66+
// audio.play();
67+
// key.classList.add('playing');
68+
// }
69+
// });
70+
// window.addEventListener('keyup', function(e) {
71+
// var key = document.querySelector(`.key[data-key="${e.keyCode}"]`);
72+
// if (key) {
73+
// key.classList.remove('playing');
74+
// }
75+
// });
76+
77+
function removeTransition(e) {
78+
if (e.propertyName !== 'transform') return;
79+
e.target.classList.remove('playing');
80+
}
81+
82+
function playSound(e) {
83+
const audio = document.querySelector(`audio[data-key="${e.keyCode}"]`);
84+
const key = document.querySelector(`.key[data-key="${e.keyCode}"]`);
85+
if (!audio) return;
86+
87+
key.classList.add('playing');
88+
audio.currentTime = 0;
89+
audio.play();
90+
}
91+
92+
const keys = Array.from(document.querySelectorAll('.key'));
93+
keys.forEach(key => key.addEventListener('transitionend', removeTransition));
94+
window.addEventListener('keydown', playSound);
7695
</script>
7796

7897

0 commit comments

Comments
 (0)