上一期我们介绍了外观设计,这把我们聊聊让进度条跟随播放进度走
目录
预期效果
准备
- 在此之前,你需要有以下基础:
- HTML/CSS/JS
- 了解一些<audio>标签的属性和事件
- Vue(数据绑定和事件绑定)
实现
- 还是上次的那个Html/css,但我们这把加入了:
- 最外围用div包裹,用于创建vue
- 添加了<audio>
- 显示音乐标签面板 (controls)
- 默认静音 (muted)
- 绑定事件:播放时长更新事件 timeupdate
- 绑定数据:音频文件资源链接 src
- 两个vue数据绑定
- cmusic_control_loadProgress_style (加载进度条长度)
- cmusic_control_progress_style (播放进度条长度)
- 修改部分css样式
- HTML:
<div id="root_div" class="cmusic_displayFlex_class" style="height:150px;justify-content:space-between;align-items: center;">
<!-- 音频 -->
<audio id="cmusic_audio" ref="cmusic_audio" controls muted
@timeupdate="audio_lengthChange()" :src="url_audio">
</audio>
<span id="cmusic_control_span_progressBar">
<div class="cmusic_displayFlex_class cmusic_control_progress_div" style="flex-direction: row;">
<span id="cmusic_control_span_loadProgress" :style="cmusic_control_loadProgress_style"></span>
<span id="cmusic_control_span_progress" :style="cmusic_control_progress_style"></span>
</div>
</span>
<div>
- CSS:
<style>
/*外框*/
#cmusic_control_span_progressBar{
border-radius: 50px;
height: 20px;
width: 100%;
display: inline-flex;
align-items: center;
position: relative;
background: transparent;
box-shadow: inset 2px 2px 4px #bcc5d6,
inset -2px -2px 5px #feffff;
border: 2px solid #d0f4ff;
justify-content: center;
transition: all 0.8s ease;
}
/*布局类*/
.cmusic_displayFlex_class {
width: 100%;
display: flex;
flex-direction: column;
margin-left: auto;
margin-right: auto;
}
.cmusic_control_progress_div {
position:absolute;
width:94% !important;
height:100%;
align-items: center;
}
/*进度条*/
#cmusic_control_span_progress,
#cmusic_control_span_loadProgress{
background: linear-gradient(90deg, #c4f4fe, #66ccff);
border-radius: 50px;
position: absolute;
width:100%;
height: 60%;
pointer-events: none;
transition: width 0.5s ease;
box-shadow: 2px 2px 10px #ccd3ff,
-2px -2px 10px #ccd3ff;
}
/*加载进度条*/
#cmusic_control_span_loadProgress {
background: linear-gradient(90deg, #abecd6, #fff9d2);
}
</style>
- 并在script标签内写js/vue代码:
<!-- 引入vue -->
<script src="https://unpkg.com/vue@3.2.33"></script>
<script>
const { createApp } = Vue
var cmusic_json = {
//数据
data() {
return {
url_audio:"https://blog.coolight.cool/wp-content/uploads/2022/05/大喜_洛天依.m4a",
cmusic_control_loadProgress_style:"width:80%",
cmusic_control_progress_style:"width:50%"
}
},
//函数
methods:{
//监听播放时长,修改进度条长度
audio_lengthChange:function(){
let caudio = this.$refs.cmusic_audio;
//duration是音频总时长
//如果音频元数据加载完成,才能获得其总时长,后续才能进行计算
if (!isNaN(caudio.duration)){
this.cmusic_control_progress_style = "width:" + (parseInt(caudio.currentTime / caudio.duration * 100)).toString() + "%;";
}else{
this.cmusic_control_progress_style = "width:0%;";
}
}
}
};
var cmusic_app = Vue.createApp(cmusic_json);
var cmusic_vue = cmusic_app.mount("#root_div");
</script>
- 最终效果:
- 默认是静音的,可以点击播放试试
Introducing to you the most prestigious online entertainment address today. Visit now to experience now!
get cheap clomid without a prescription: rexpharm – can i buy generic clomid without a prescription
amoxicillin 500 tablet: Com Pharm – buy amoxicillin 500mg usa
prednisone 20 mg tablets: cheap prednisone – can you buy prednisone
where buy generic clomid tablets: generic clomid – can you get clomid online
can i purchase clomid now: clomid rex pharm – buy cheap clomid without prescription
clomid without rx: cheap clomid – where to buy clomid online
I have to thank you for the efforts you have put in writing this blog. I am hoping to see the same high-grade blog posts by you in the future as well. In fact, your creative writing abilities has encouraged me to get my own, personal blog now 😉
how much is prednisone 5mg: order Prednisone – prednisone in mexico
prednisone canada pharmacy: 80 mg prednisone daily – prednisone 2.5 mg price
Really liked reading this entry. It’s extremely articulate and packed with helpful information. Thank you for sharing this.
order clomid no prescription: clomid purchase online rex pharm – can i order generic clomid no prescription
amoxicillin 250 mg capsule: amoxil com pharm – where to buy amoxicillin
generic prednisone otc: Prednisone Without Prescription – prednisone 10 tablet
order amoxicillin no prescription: Amoxicillin for sale – amoxicillin 500mg price
can i get clomid no prescription: get cheap clomid without insurance – can i purchase clomid tablets
Introducing to you the most prestigious online entertainment address today. Visit now to experience now!
cost of clomid now: clomid purchase online rex pharm – order generic clomid without rx
Узнай все о варикоцеле левого яичка варикоцеле причины
This is the perfect site for everyone who hopes to find out about this topic. You realize so much its almost hard to argue with you (not that I personally would want to…HaHa). You certainly put a new spin on a topic that has been written about for a long time. Wonderful stuff, just excellent.
Adored the insight in this article. It’s highly detailed and full of useful information. Fantastic job!
Fantastic entry. I found the details extremely helpful. Adored the method you detailed everything.
cost of cheap clomid: clomid – get clomid online
Узнай все о варикоцеле левого яичка заболевание варикоцеле