@@ -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
0 commit comments