本文实例为大家分享了Javascript实现打鼓效果的具体代码,供大家参考,具体内容如下
按住响应的键盘显示不同的声音
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
|
< div class = "keys" >
< div data-key = "65" class = "key" >
< kbd >A</ kbd >
< span class = "sound" >clap</ span >
</ div >
< div data-key = "83" class = "key" >
< kbd >S</ kbd >
< span class = "sound" >hihat</ span >
</ div >
< div data-key = "68" class = "key" >
< kbd >D</ kbd >
< span class = "sound" >kick</ span >
</ div >
< div data-key = "70" class = "key" >
< kbd >F</ kbd >
< span class = "sound" >openhat</ span >
</ div >
< div data-key = "71" class = "key" >
< kbd >G</ kbd >
< span class = "sound" >boom</ span >
</ div >
< div data-key = "72" class = "key" >
< kbd >H</ kbd >
< span class = "sound" >ride</ span >
</ div >
< div data-key = "74" class = "key" >
< kbd >J</ kbd >
< span class = "sound" >snare</ span >
</ div >
< div data-key = "75" class = "key" >
< kbd >K</ kbd >
< span class = "sound" >tom</ span >
</ div >
< div data-key = "76" class = "key" >
< kbd >L</ kbd >
< span class = "sound" >tink</ span >
</ div >
</ div >
< audio data-key = "65" src = "sounds/clap.wav" ></ audio >
< audio data-key = "83" src = "sounds/hihat.wav" ></ audio >
< audio data-key = "68" src = "sounds/kick.wav" ></ audio >
< audio data-key = "70" src = "sounds/openhat.wav" ></ audio >
< audio data-key = "71" src = "sounds/boom.wav" ></ audio >
< audio data-key = "72" src = "sounds/ride.wav" ></ audio >
< audio data-key = "74" src = "sounds/snare.wav" ></ audio >
< audio data-key = "75" src = "sounds/tom.wav" ></ audio >
< audio data-key = "76" src = "sounds/tink.wav" ></ audio >
|
css部分:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
|
html {
font-size : 10px ;
background : url ( '../img/background.jpg' ) bottom center ;
background- size : cover;
}
body,html {
margin : 0 ;
padding : 0 ;
font-family : sans-serif ;
}
.keys {
display : flex;
flex: 1 ;
min-height : 100 vh;
align-items: center ;
justify- content : center ;
}
.key {
border : . 4 rem solid black ;
border-radius: . 5 rem;
margin : 1 rem;
font-size : 1.5 rem;
padding : 1 rem . 5 rem;
transition: all . 07 s ease;
width : 10 rem;
text-align : center ;
color : white ;
background : rgba( 0 , 0 , 0 , 0.4 );
text-shadow : 0 0 . 5 rem black ;
}
.playing {
transform: scale( 1.1 );
border-color : #ffc600 ;
box-shadow: 0 0 1 rem #ffc600 ;
}
kbd {
display : block ;
font-size : 4 rem;
}
.sound {
font-size : 1.2 rem;
text-transform : uppercase ;
letter-spacing : . 1 rem;
color : #ffc600 ;
}
|
第一步实现按下键盘实现,声音的播放
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
window.addEventListener( "keydown" , function (e){
console.log(e.keyCode);
const audio=document.querySelector(`audio[data-key= "${e.keyCode}" ]`);
const key=document.querySelector(`div[data-key= "${e.keyCode}" ]`)
//每次播放完初始化
if (!audio) return ;
audio.currentTime = 0;
audio.play();
key.classList.add( 'playing' );
setTimeout( function (){
key.classList.remove( 'playing' );
},70);
//按键之后移出效果
})
|
keyCode对应图
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。
原文链接:https://blog.csdn.net/qq_41309350/article/details/113335998