这是生成了不同的按钮 进行显示
每一个按钮对应一个音频
点击按钮 会播放对应的音频
直接上代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
@import url('https://fonts.googleapis.com/css2?family=Roboto:wght@400;700&display=swap');
* {
box-sizing: border-box;
}
body {
background-color: rgb(161, 100, 223);
font-family: 'Roboto', sans-serif;
display: flex;
flex-wrap: wrap;
align-items: center;
justify-content: center;
text-align: center;
height: 100vh;
overflow: hidden;
margin: 0;
}
.btn {
background-color: rebeccapurple;
border-radius: 3px;
border: none;
color: #fff;
margin: 1rem;
padding: 1.5rem 3rem;
font-size: 1.2rem;
font-family: inherit;
cursor: pointer;
}
.btn:hover {
opacity: .9;
}
.btn:focus {
outline: none;
}
</style>
</head>
<body>
<audio id="applause" src="./sounds/applause.mp3"></audio>
<audio id="boo" src="./sounds/boo.mp3"></audio>
<audio id="gasp" src="./sounds/gasp.mp3"></audio>
<audio id="tada" src="./sounds/tada.mp3"></audio>
<audio id="victory" src="./sounds/victory.mp3"></audio>
<audio id="wrong" src="./sounds/wrong.mp3"></audio>
<div id="buttons"></div>
<script>
const sounds = ['applause', 'boo', 'gasp', 'tada', 'victory', 'wrong'];
sounds.forEach((sound) => {
const btn = document.createElement('button')
btn.classList.add('btn')
btn.innerText = sound
btn.addEventListener('click', () => {
stopSongs()
document.getElementById(sound).play()
})
document.getElementById("buttons").appendChild(btn)
})
function stopSongs() {
sounds.forEach((sound) => {
const song = document.getElementById(sound)
song.pause()
song.currrentTime = 0
})
}
</script>
</body>
</html>
主要是考验的是 当前 生成 元素的语法 以及 audio 标签的使用 相关的播放 暂停的 方法