上一期我们介绍了外观设计,这把我们聊聊让进度条跟随播放进度走
目录
预期效果
准备
- 在此之前,你需要有以下基础:
- 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>
- 最终效果:
- 默认是静音的,可以点击播放试试
Viagra pas cher livraison rapide france: Viagra femme sans ordonnance 24h – SildГ©nafil Teva 100 mg acheter
pharmacie en ligne livraison europe: kamagra oral jelly – pharmacie en ligne france livraison internationale
Pharmacie Internationale en ligne: pharmacie en ligne pas cher – pharmacies en ligne certifiГ©es
vente de mГ©dicament en ligne: Acheter Cialis 20 mg pas cher – pharmacies en ligne certifiГ©es
п»їpharmacie en ligne france: cialis prix – Pharmacie en ligne livraison Europe
pharmacie en ligne: Levitra pharmacie en ligne – pharmacie en ligne france pas cher
Meilleur Viagra sans ordonnance 24h: viagra sans ordonnance – Viagra homme sans prescription
Viagra gГ©nГ©rique pas cher livraison rapide: SildГ©nafil 100 mg sans ordonnance – Acheter Sildenafil 100mg sans ordonnance
Pharmacie en ligne livraison Europe: achat kamagra – Pharmacie sans ordonnance
pharmacie en ligne fiable: trouver un mГ©dicament en pharmacie – pharmacie en ligne pas cher
pharmacie en ligne pas cher: Pharmacie Internationale en ligne – pharmacie en ligne avec ordonnance
pharmacie en ligne avec ordonnance: Acheter Cialis – acheter mГ©dicament en ligne sans ordonnance
pharmacie en ligne france fiable: pharmacie en ligne livraison europe – pharmacie en ligne france pas cher
pharmacies en ligne certifiГ©es: pharmacie en ligne pas cher – pharmacie en ligne france fiable
trouver un mГ©dicament en pharmacie: Acheter Cialis – п»їpharmacie en ligne france
Viagra sans ordonnance livraison 24h: viagra sans ordonnance – Viagra gГ©nГ©rique sans ordonnance en pharmacie
vente de mГ©dicament en ligne: levitra generique – Pharmacie Internationale en ligne
Viagra gГ©nГ©rique sans ordonnance en pharmacie: viagra en ligne – Quand une femme prend du Viagra homme
pharmacie en ligne livraison europe: Levitra 20mg prix en pharmacie – pharmacie en ligne france livraison belgique
Viagra homme prix en pharmacie sans ordonnance: Viagra sans ordonnance 24h – Prix du Viagra 100mg en France
pharmacie en ligne sans ordonnance: acheter mГ©dicament en ligne sans ordonnance – pharmacie en ligne
https://levitraenligne.shop/# acheter médicament en ligne sans ordonnance
Pharmacie sans ordonnance: pharmacie en ligne sans ordonnance – Pharmacie Internationale en ligne
pharmacie en ligne france livraison internationale: cialis generique – vente de mГ©dicament en ligne
п»їpharmacie en ligne france: vente de mГ©dicament en ligne – Pharmacie en ligne livraison Europe
pharmacie en ligne fiable: Acheter Cialis 20 mg pas cher – pharmacie en ligne france livraison belgique
Pharmacie en ligne livraison Europe: pharmacie en ligne pas cher – п»їpharmacie en ligne france
pharmacie en ligne france pas cher: cialis generique – acheter mГ©dicament en ligne sans ordonnance
pharmacie en ligne avec ordonnance: pharmacie en ligne sans ordonnance – п»їpharmacie en ligne france
pharmacie en ligne france livraison belgique: Pharmacies en ligne certifiees – pharmacie en ligne france livraison belgique
https://viaenligne.com/# Sildénafil 100 mg sans ordonnance
Prix du Viagra en pharmacie en France: Meilleur Viagra sans ordonnance 24h – SildГ©nafil 100mg pharmacie en ligne
pharmacie en ligne france livraison belgique: acheter kamagra site fiable – Pharmacie Internationale en ligne
Pharmacie sans ordonnance: Cialis sans ordonnance 24h – pharmacie en ligne france pas cher
pharmacie en ligne france livraison internationale: pharmacie en ligne – acheter mГ©dicament en ligne sans ordonnance
Hello!
This post was created with XRumer 23 StrongAI.
Good luck 🙂
pharmacie en ligne fiable: Pharmacie en ligne livraison Europe – pharmacie en ligne avec ordonnance
pharmacie en ligne avec ordonnance: kamagra oral jelly – п»їpharmacie en ligne france
pharmacie en ligne pas cher: cialis prix – Pharmacie Internationale en ligne
pharmacies en ligne certifiГ©es: Levitra pharmacie en ligne – pharmacie en ligne sans ordonnance
Hello.
This post was created with XRumer 23 StrongAI.
Good luck 🙂
pharmacie en ligne france pas cher: Levitra pharmacie en ligne – pharmacie en ligne sans ordonnance
acheter mГ©dicament en ligne sans ordonnance: cialis generique – pharmacie en ligne avec ordonnance
pharmacie en ligne fiable: Achat mГ©dicament en ligne fiable – pharmacie en ligne avec ordonnance
https://phenligne.shop/# pharmacies en ligne certifiées
pharmacie en ligne sans ordonnance: vente de mГ©dicament en ligne – Achat mГ©dicament en ligne fiable
Pharmacie en ligne livraison Europe: Pharmacies en ligne certifiees – pharmacie en ligne avec ordonnance
pharmacie en ligne france pas cher: pharmacie en ligne pas cher – pharmacie en ligne fiable
Pharmacie Internationale en ligne: kamagra gel – pharmacie en ligne livraison europe
acheter mГ©dicament en ligne sans ordonnance levitra en ligne Pharmacie sans ordonnance