上一期我们介绍了外观设计,这把我们聊聊让进度条跟随播放进度走
目录
预期效果
准备
- 在此之前,你需要有以下基础:
- 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>
- 最终效果:
- 默认是静音的,可以点击播放试试
prednisone online india: order prednisone – prednisone online sale
zithromax 500mg price how to buy zithromax online zithromax cost
cost of prednisone 10mg tablets: 50mg prednisone tablet – price of prednisone 5mg
http://gabapentinneurontin.pro/# order neurontin online
https://amoxila.pro/# cost of amoxicillin 875 mg
doxycycline order online buy cheap doxycycline where to purchase doxycycline
prednisone 20mg price prednisone 15 mg daily prednisone buying
buying neurontin without a prescription: neurontin 100mg caps – neurontin brand name 800mg best price
buy neurontin: neurontin cap 300mg – neurontin 300 mg price in india
purchase doxycycline online: doxycycline 500mg – odering doxycycline
zithromax for sale usa zithromax canadian pharmacy zithromax 500
https://gabapentinneurontin.pro/# neurontin tablets
how to get neurontin: neurontin tablets no script – neurontin 600 mg
http://doxycyclinea.online/# buy doxycycline for dogs
https://zithromaxa.store/# can you buy zithromax over the counter
doxycycline mono: generic doxycycline – doxycycline tetracycline
amoxicillin 500mg prescription can you buy amoxicillin over the counter amoxicillin 500mg buy online uk
neurontin 300mg neurontin 100 mg caps neurontin 204
zithromax 500 price zithromax cost uk buy azithromycin zithromax
cost of neurontin 600 mg: prescription medication neurontin – how much is neurontin pills
http://zithromaxa.store/# buy azithromycin zithromax
doxycycline hydrochloride 100mg: generic doxycycline – doxycycline 50 mg
http://gabapentinneurontin.pro/# price of neurontin
https://doxycyclinea.online/# order doxycycline
neurontin 400 mg cost neurontin cap 300mg price neurontin price
neurontin 600 mg cost neurontin 400 mg price generic neurontin 300 mg
prednisone 50mg cost: prednisone 20mg – prednisone 4 mg daily
amoxicillin tablets in india: amoxicillin no prescription – amoxicillin 500 mg tablets
where can i buy prednisone without a prescription: 54 prednisone – how to buy prednisone
doxycycline pills: doxycycline 100mg – doxycycline 50 mg
zithromax z-pak price without insurance: zithromax 500mg price in india – zithromax prescription
buy doxycycline without prescription uk order doxycycline 100mg without prescription generic doxycycline
buy amoxicillin 500mg online: where to buy amoxicillin pharmacy – medicine amoxicillin 500mg
http://zithromaxa.store/# how to get zithromax over the counter
doxycycline hyclate: generic doxycycline – buy doxycycline online uk
http://gabapentinneurontin.pro/# neurontin buy from canada
https://prednisoned.online/# can i buy prednisone online in uk
buy amoxicillin online cheap generic amoxil 500 mg amoxicillin online pharmacy
neurontin 300 neurontin without prescription neurontin 600 mg pill
prednisone 2.5 mg cost: prednisone 30 mg coupon – prednisone 300mg
amoxicillin where to get: amoxicillin 500 mg online – how to buy amoxycillin
how much is prednisone 10 mg prednisone 20mg buy online over the counter prednisone medicine
neurontin 300 mg: neurontin discount – neurontin 900 mg
amoxicillin for sale online: amoxicillin order online no prescription – amoxicillin order online
buy azithromycin zithromax: buy zithromax online australia – zithromax capsules australia
buying amoxicillin online: purchase amoxicillin online – amoxicillin cost australia
amoxicillin no prescipion: amoxicillin online purchase – amoxicillin online no prescription
where to get zithromax: buy cheap zithromax online – purchase zithromax online
neurontin brand name in india: buy gabapentin online – neurontin capsules 600mg
how much is generic neurontin: how to get neurontin – drug neurontin 20 mg