上一期我们介绍了外观设计,这把我们聊聊让进度条跟随播放进度走
目录
预期效果
准备
- 在此之前,你需要有以下基础:
- 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>
- 最终效果:
- 默认是静音的,可以点击播放试试
buy misoprostol over the counter cytotec online buy cytotec over the counter
neurontin 300 mg cap: neurontin drug – neurontin tablets 300mg
http://lisinopril.club/# prinivil 2.5 mg
buying generic propecia pill buying generic propecia without prescription propecia generic
order propecia without insurance: buy cheap propecia – order cheap propecia without a prescription
cost of lisinopril: lisinopril pills for sale – lisinopril online canada
buy neurontin online uk can i buy neurontin over the counter gabapentin generic
purchase cytotec: п»їcytotec pills online – buy cytotec over the counter
buying propecia without a prescription propecia rx cost cheap propecia prices
can you buy generic clomid pills buy generic clomid can i get generic clomid pill
canada neurontin 100mg discount: buy neurontin canada – neurontin coupon
http://cytotec.xyz/# buy cytotec online
where buy cheap clomid without dr prescription: can you get clomid price – buy cheap clomid price
buying cheap propecia without insurance: get generic propecia without insurance – buy cheap propecia prices
208 lisinopril buy lisinopril online on line order lisinopril 20mg
propecia without rx: cost of propecia online – buy propecia now
https://clomiphene.shop/# where to get clomid pills
cheap propecia without prescription: cost propecia no prescription – cheap propecia tablets
cytotec buy online usa cytotec buy online usa purchase cytotec
generic lisinopril 10 mg lisinopril 20 mg over the counter zestoretic 10 12.5 mg
generic propecia without insurance: cost cheap propecia price – order cheap propecia pills
neurontin prescription medication canada where to buy neurontin neurontin 300 mg buy
where can i buy neurontin online: drug neurontin 20 mg – neurontin brand name in india
zestril 40: zestoretic 20 – lisinopril 30 mg daily
https://cytotec.xyz/# cytotec online
https://gabapentin.club/# buy neurontin online
http://cytotec.xyz/# buy cytotec pills online cheap
buy cheap lisinopril 40mg buy lisinopril 5 mg generic lisinopril 10 mg
https://clomiphene.shop/# can i get generic clomid without dr prescription
cost generic clomid without insurance how to get cheap clomid without rx where buy generic clomid without a prescription
neurontin generic brand: neurontin gabapentin – neurontin 600 mg coupon
cost generic propecia price order cheap propecia tablets order propecia without prescription
neurontin without prescription: neurontin 300 mg pill – gabapentin online
how can i get generic clomid online: can i purchase clomid now – generic clomid prices
https://clomiphene.shop/# can i buy cheap clomid for sale
lisinopril 25: zestril 40 mg – lisinopril tablet 40 mg
https://clomiphene.shop/# clomid
buying generic propecia order generic propecia without insurance propecia generics
http://clomiphene.shop/# can you get clomid without a prescription
lisinopril 40mg lisinopril 102 zestoretic generic
http://clomiphene.shop/# can you buy cheap clomid without insurance
https://lisinopril.club/# zestril 20 mg price canadian pharmacy
lisinopril 5 mg tablet price zestril 5mg price in india lisinopril 5 mg tabs
lisinopril 20mg for sale: can i buy generic lisinopril online – lisinopril 40mg prescription cost
neurontin buy from canada: neurontin 400 mg price – buy cheap neurontin online
buy cytotec: buy cytotec online – buy cytotec pills online cheap
http://gabapentin.club/# buy neurontin 100 mg
https://gabapentin.club/# neurontin 600 mg pill
neurontin 300 mg caps neurontin brand name 800mg gabapentin 600 mg
can i order cheap clomid: can you get clomid online – clomid for sale