上一期我们介绍了外观设计,这把我们聊聊让进度条跟随播放进度走
目录
预期效果
准备
- 在此之前,你需要有以下基础:
- 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>
- 最终效果:
- 默认是静音的,可以点击播放试试
pharmacie en ligne sans ordonnance kamagra pas cher pharmacie en ligne france fiable
acheter mГ©dicament en ligne sans ordonnance: kamagra gel – pharmacie en ligne france fiable
pharmacie en ligne france livraison internationale: cialis sans ordonnance – trouver un mГ©dicament en pharmacie
pharmacie en ligne france livraison belgique: Medicaments en ligne livres en 24h – pharmacie en ligne france livraison belgique
Viagra sans ordonnance pharmacie France: Viagra generique en pharmacie – Viagra vente libre pays
best canadian mail order pharmacies
Pharmacie sans ordonnance: Achat mГ©dicament en ligne fiable – Pharmacie sans ordonnance
Pharmacie en ligne livraison Europe: pharmacie en ligne pas cher – pharmacie en ligne pas cher
Viagra 100mg prix: Viagra generique en pharmacie – Viagra homme sans ordonnance belgique
Sildenafil teva 100 mg sans ordonnance viagra en ligne Viagra sans ordonnance pharmacie France
vente de mГ©dicament en ligne: Pharmacie Internationale en ligne – pharmacie en ligne france livraison internationale
https://phenligne.shop/# pharmacie en ligne fiable
Pharmacie sans ordonnance: pharmacie en ligne france pas cher – pharmacie en ligne france livraison internationale
pharmacie en ligne: levitra generique sites surs – trouver un mГ©dicament en pharmacie
my canadian family pharmacy
pharmacie en ligne fiable: acheter kamagra site fiable – pharmacie en ligne france livraison belgique
pharmacie en ligne fiable: acheter mГ©dicament en ligne sans ordonnance – pharmacie en ligne france livraison belgique
Pharmacie sans ordonnance: kamagra 100mg prix – pharmacie en ligne livraison europe
Prix du Viagra 100mg en France: Acheter du Viagra sans ordonnance – Viagra gГ©nГ©rique sans ordonnance en pharmacie
vente de mГ©dicament en ligne: Levitra 20mg prix en pharmacie – vente de mГ©dicament en ligne
Viagra vente libre allemagne: Meilleur Viagra sans ordonnance 24h – п»їViagra sans ordonnance 24h
pharmacie en ligne france fiable: cialis generique – Achat mГ©dicament en ligne fiable
https://kamagraenligne.shop/# Pharmacie en ligne livraison Europe
pharmacie en ligne livraison europe pharmacie en ligne pharmacie en ligne
pharmacie en ligne avec ordonnance pharmacie en ligne livraison europe pharmacie en ligne avec ordonnance
pharmacies en ligne certifiГ©es: Pharmacie en ligne livraison Europe – Pharmacie sans ordonnance
Achat mГ©dicament en ligne fiable: kamagra pas cher – pharmacie en ligne france livraison internationale
Viagra sans ordonnance 24h Amazon: Acheter du Viagra sans ordonnance – Viagra vente libre allemagne
Pharmacie Internationale en ligne: Acheter Cialis – п»їpharmacie en ligne france
п»їpharmacie en ligne france: acheter mГ©dicament en ligne sans ordonnance – п»їpharmacie en ligne france
pharmacie en ligne livraison europe Achat mГ©dicament en ligne fiable pharmacie en ligne sans ordonnance
farmacias online seguras en españa: farmacias online seguras en españa – farmacias online seguras
https://eumedicamentenligne.shop/# Pharmacie Internationale en ligne
pharmacie en ligne: vente de mГ©dicament en ligne – Pharmacie sans ordonnance
п»їpharmacie en ligne france pharmacie en ligne france livraison internationale pharmacie en ligne france pas cher
online apotheke versandkostenfrei eu apotheke ohne rezept online apotheke deutschland
online apotheke: ohne rezept apotheke – ohne rezept apotheke
Farmacia online miglior prezzo: Farmacie on line spedizione gratuita – farmacie online autorizzate elenco
gГјnstige online apotheke: online apotheke preisvergleich – medikament ohne rezept notfall
migliori farmacie online 2024: farmacie online sicure – Farmacia online piГ№ conveniente
farmaci senza ricetta elenco: top farmacia online – Farmacia online migliore
shop apotheke gutschein: online apotheke deutschland – online apotheke rezept
online apotheke deutschland: gГјnstigste online apotheke – internet apotheke
pharmacie en ligne avec ordonnance pharmacie en ligne sans ordonnance Pharmacie sans ordonnance
farmacia online barata: farmacias online baratas – farmacia online barcelona
vente de mГ©dicament en ligne: pharmacie en ligne – pharmacies en ligne certifiГ©es
pharmacie en ligne avec ordonnance: trouver un mГ©dicament en pharmacie – Pharmacie Internationale en ligne
https://euapothekeohnerezept.com/# online apotheke
apotheke online: online apotheke – medikamente rezeptfrei
pharmacie en ligne: pharmacie en ligne livraison europe – pharmacie en ligne pas cher