Skip to content

Commit b49f996

Browse files
author
Greg Pfaff
committed
Adding working drum kit
1 parent d5e19fe commit b49f996

File tree

2 files changed

+26
-29
lines changed

2 files changed

+26
-29
lines changed

01 - JavaScript Drum Kit/index-START.html

Lines changed: 20 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -62,33 +62,29 @@ <h1>#JavaScript30 Drum Example</h1>
6262

6363
<script>
6464

65-
var drum = document.getElementsByClassName('drum');
66-
var audio = document.getElementsByTagName('audio');
65+
window.addEventListener('keydown', drummer);
6766

67+
function removeTransition(e) {
68+
if (e.propertyName !== 'transform') return;
69+
console.log(e.propertyName);
70+
this.classList.remove('playing');
71+
}
6872

69-
for (var i = 0; i < drum.length; i++) {
70-
var drumAttr = drum[i].getAttribute('data-key');
71-
var drumEl = drum[i];
72-
console.log(drumEl);
73-
for (var j = 0; j < audio.length; j++) {
74-
var audioEl = audio[j];
75-
console.log(audioEl);
76-
}
77-
this.addEventListener("keyup", function(e) {
78-
if (e.keyCode == 65) {
79-
console.log(e.keyCode);
80-
}
81-
})
82-
}
73+
function drummer(e) {
74+
console.log(e.keyCode);
8375

84-
85-
//drumEl.addEventListener('click', drumLoop, false);
86-
//drum.addEventListener('click', drumLoop, false);
87-
/* drumEl.addEventListener("keyup", function(event) {
88-
if (event.keyCode == 65) {
89-
console.log("Clicked");
90-
}
91-
})*/
76+
const audio = document.querySelector(`audio[data-key="${e.keyCode}"`);
77+
const drum = document.querySelector(`div[data-key="${e.keyCode}"`);
78+
79+
if (!audio) return;
80+
audio.currentTime = 0;
81+
audio.play();
82+
drum.classList.add('playing');
83+
}
84+
85+
const drums = document.querySelectorAll('.drum');
86+
drums.forEach(drum => drum.addEventListener('transitionend', removeTransition));
87+
9288
</script>
9389

9490

01 - JavaScript Drum Kit/style.css

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ h1 {
3535
text-align: center;
3636
vertical-align: middle;
3737
}
38-
.drums .drumkit .drum {
38+
.drum {
3939
border: 4px solid black;
4040
width: 90px;
4141
height: 80px;
@@ -44,12 +44,13 @@ h1 {
4444
vertical-align: middle;
4545
background-color: rgba(0, 0, 0, 0.5);
4646
border-radius: 5px;
47+
transition: all 0.6s;
4748
}
48-
.drums .drumkit .drum:hover {
49+
.drum:hover, .drum.playing {
4950
box-shadow: 0 0 10px #fff;
50-
transition: ease-in 0.25s;
51+
transform: scale(1.05);
5152
}
52-
.drums .drumkit .drum-note {
53+
.drum-note {
5354
display: block;
5455
text-transform: uppercase;
5556
margin-top: 10px;
@@ -58,7 +59,7 @@ h1 {
5859
font-weight: bold;
5960
font-size: 20px;
6061
}
61-
.drums .drumkit .drum-sound {
62+
.drum-sound {
6263
text-transform: uppercase;
6364
margin-top: 10px;
6465
color: #ffc600;

0 commit comments

Comments
 (0)