在 audio.html 文件中添加两个嵌套的 <div> 标签以及文件选择器(<input type='file’/>) 分别设置两个 <div> 标签的样式。外层 <div> 标签为圆角矩形、线性渐变背景和边框阴影,内层 <div> 标签为圆形、径向渐变背景和水平居中,这样内层 <div> 标签类似唱片效果 添加 <script> 标签,实现文件选择器的 change 事件处理程序。在其中先将选择的文件名的前 13 个字符在内层 <div> 标签中显示,再创建 FileReader 对象,并通过readAsDataURL() 方法加载文件,最后在 FileReader对象的 load 事件中创建 audio 对象,加载音乐内容并播放,在内层 <div> 标签上增加旋转动画样式
时间: 2023-12-05 13:06:14 浏览: 75
可以按照以下步骤来实现:
1. 在 audio.html 文件中添加两个嵌套的 <div> 标签以及文件选择器(<input type='file’/>),并设置它们的样式,如下所示:
```html
<div class="outer">
<div class="inner">
Choose a music file:
<input type="file" id="fileInput">
</div>
</div>
```
2. 在 CSS 文件中添加外层 <div> 标签的样式,如下所示:
```css
.outer {
width: 300px;
height: 300px;
border-radius: 20px;
background: linear-gradient(to bottom, #FFB347, #FF8C00);
box-shadow: 5px 5px 10px #888888;
display: flex;
justify-content: center;
align-items: center;
}
```
3. 在 CSS 文件中添加内层 <div> 标签的样式,如下所示:
```css
.inner {
width: 200px;
height: 200px;
border-radius: 50%;
background: radial-gradient(circle, #FF4500, #FFA07A);
display: flex;
justify-content: center;
align-items: center;
font-size: 20px;
font-weight: bold;
color: white;
text-align: center;
animation: rotate 2s linear infinite;
}
@keyframes rotate {
from {
transform: rotate(0deg);
}
to {
transform: rotate(360deg);
}
}
```
4. 添加 <script> 标签,在其中实现文件选择器的 change 事件处理程序,如下所示:
```html
<script>
const fileInput = document.getElementById('fileInput');
const innerDiv = document.querySelector('.inner');
fileInput.addEventListener('change', function() {
const file = this.files[0];
const fileName = file.name.substring(0, 13);
innerDiv.textContent = fileName;
const reader = new FileReader();
reader.readAsDataURL(file);
reader.onload = function() {
const audio = new Audio(reader.result);
audio.play();
}
});
</script>
```
5. 最后,在内层 <div> 标签上增加旋转动画样式,这部分已经在第三步中完成了。
完成后的效果为:选择一个音乐文件,前13个字符显示在内层 <div> 标签中,同时音乐开始播放,并且内层 <div> 标签会旋转。
阅读全文