写一个有5个图片点击图片播放对应的音乐的代码
时间: 2023-09-07 21:15:28 浏览: 110
以下是一个简单的 HTML、CSS 和 JavaScript 代码,实现了点击图片播放对应的音乐。
HTML 代码:
```html
<!DOCTYPE html>
<html>
<head>
<title>Image and Music Player</title>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
<div class="container">
<div class="image-container">
<img src="image1.jpg" id="image1">
<img src="image2.jpg" id="image2">
<img src="image3.jpg" id="image3">
<img src="image4.jpg" id="image4">
<img src="image5.jpg" id="image5">
</div>
<div class="music-container">
<audio id="audio1" src="music1.mp3"></audio>
<audio id="audio2" src="music2.mp3"></audio>
<audio id="audio3" src="music3.mp3"></audio>
<audio id="audio4" src="music4.mp3"></audio>
<audio id="audio5" src="music5.mp3"></audio>
</div>
</div>
<script src="script.js"></script>
</body>
</html>
```
CSS 代码:
```css
.container {
display: flex;
flex-direction: column;
align-items: center;
}
.image-container img {
width: 200px;
height: 200px;
margin: 10px;
cursor: pointer;
}
.music-container audio {
display: none;
}
```
JavaScript 代码:
```javascript
const images = document.querySelectorAll('.image-container img');
const audios = document.querySelectorAll('.music-container audio');
images.forEach((image, index) => {
image.addEventListener('click', () => {
// 暂停所有音乐
audios.forEach(audio => {
audio.pause();
audio.currentTime = 0;
});
// 播放对应音乐
audios[index].play();
});
});
```
解释一下这段代码的实现过程:
首先,我们使用 `querySelectorAll()` 方法获取所有图片和音乐元素,分别存储在 `images` 和 `audios` 变量中。
然后,我们使用 `forEach()` 方法遍历所有图片元素,并为每个元素添加一个点击事件监听器。当用户点击图片时,我们会暂停所有音乐并将它们的播放时间重置为 0 秒。之后,我们会播放与所点击图片对应的音乐,即 `audios` 数组中的第 `index` 个元素,其中 `index` 是当前点击图片的索引。
注意,我们在 CSS 中使用了 `display: none;` 将所有音乐元素隐藏起来,这是为了避免在页面加载时自动播放音乐。当用户点击图片时,我们才会将对应的音乐元素播放出来。
当然,这只是一个简单的示例,实际项目中可能需要更复杂的逻辑和样式。
阅读全文