Skip to content

Commit bbbb07e

Browse files
author
noobandy
committed
solution 1 first attempt
1 parent 45e08db commit bbbb07e

File tree

1 file changed

+47
-0
lines changed

1 file changed

+47
-0
lines changed

01 - JavaScript Drum Kit/index-START.html

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

6060
<script>
61+
(function (document) {
62+
var Key = function () {
63+
}
6164

65+
Key.prototype.start = function() {
66+
this.key.classList.add('playing')
67+
this.audio.play()
68+
}
69+
70+
Key.prototype.stop = function() {
71+
this.key.classList.remove('playing')
72+
/*if(!this.audio.ended) {
73+
this.audio.pause()
74+
}*/
75+
};
76+
77+
var keyMap = {
78+
79+
}
80+
81+
var keys = document.getElementsByClassName('key');
82+
83+
for(var i = 0; i < keys.length; i++) {
84+
var newkey = new Key()
85+
newkey.key = keys[i]
86+
keyMap[keys[i].getAttribute('data-key')] = newkey
87+
}
88+
89+
var audios = document.getElementsByTagName('audio');
90+
for(var i = 0; i < audios.length; i++) {
91+
keyMap[audios[i].getAttribute('data-key')].audio = audios[i];
92+
}
93+
94+
var activeKey;
95+
document.onkeyup = function (e) {
96+
if(keyMap[e.keyCode]) {
97+
if(activeKey) {
98+
activeKey.stop()
99+
}
100+
101+
activeKey = keyMap[e.keyCode]
102+
activeKey.start()
103+
104+
}
105+
console.log(keyMap[e.keyCode]);
106+
107+
}
108+
})(document);
62109
</script>
63110

64111

0 commit comments

Comments
 (0)