@@ -62,33 +62,29 @@ <h1>#JavaScript30 Drum Example</h1>
62
62
63
63
< script >
64
64
65
- var drum = document . getElementsByClassName ( 'drum' ) ;
66
- var audio = document . getElementsByTagName ( 'audio' ) ;
65
+ window . addEventListener ( 'keydown' , drummer ) ;
67
66
67
+ function removeTransition ( e ) {
68
+ if ( e . propertyName !== 'transform' ) return ;
69
+ console . log ( e . propertyName ) ;
70
+ this . classList . remove ( 'playing' ) ;
71
+ }
68
72
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 ) ;
83
75
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
+
92
88
</ script >
93
89
94
90
0 commit comments