上一期我们介绍了外观设计,这把我们聊聊让进度条跟随播放进度走
目录
预期效果
准备
- 在此之前,你需要有以下基础:
- 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>
- 最终效果:
- 默认是静音的,可以点击播放试试
get generic propecia without rx: buying cheap propecia online – buy cheap propecia no prescription
buy generic ciprofloxacin cipro pharmacy п»їcipro generic
get cheap propecia tablets: cost cheap propecia tablets – get propecia pills
https://cytotec.club/# buy cytotec in usa
http://nolvadex.life/# tamoxifen premenopausal
https://nolvadex.life/# does tamoxifen make you tired
buy cytotec online fast delivery: Cytotec 200mcg price – buy cytotec pills online cheap
buy cytotec cytotec buy online usa buy cytotec over the counter
arimidex vs tamoxifen bodybuilding benefits of tamoxifen buy tamoxifen
order cytotec online order cytotec online cytotec online
cipro ciprofloxacin: ciprofloxacin – cipro generic
http://nolvadex.life/# common side effects of tamoxifen
tamoxifen hair loss: does tamoxifen cause menopause – where can i buy nolvadex
lisinopril 20mg tablets cost lisinopril 20 mg canada zestoretic 5 mg
https://cytotec.club/# buy cytotec in usa
http://cytotec.club/# order cytotec online
tamoxifen and bone density: nolvadex generic – tamoxifen and depression
http://cytotec.club/# buy cytotec over the counter
http://mexicoph24.life/# mexico drug stores pharmacies
buy prescription drugs from canada cheap Prescription Drugs from Canada my canadian pharmacy reviews
https://indiaph24.store/# Online medicine order
canadian pharmacy service canadian pharmacy online reviews buying drugs from canada
indianpharmacy com https://indiaph24.store/# top 10 pharmacies in india
india online pharmacy
buy medicines online in india Cheapest online pharmacy mail order pharmacy india
https://canadaph24.pro/# my canadian pharmacy
https://indiaph24.store/# best online pharmacy india
top online pharmacy india: indian pharmacy fast delivery – indianpharmacy com
india pharmacy mail order https://indiaph24.store/# п»їlegitimate online pharmacies india
india pharmacy mail order
purple pharmacy mexico price list: Online Pharmacies in Mexico – reputable mexican pharmacies online
http://indiaph24.store/# online pharmacy india
canadian pharmacy world reviews Large Selection of Medications from Canada canadian world pharmacy
http://indiaph24.store/# indianpharmacy com
mexican border pharmacies shipping to usa: Online Pharmacies in Mexico – buying prescription drugs in mexico
buying from online mexican pharmacy: Online Pharmacies in Mexico – mexico pharmacy
http://mexicoph24.life/# mexico pharmacy
https://mexicoph24.life/# best mexican online pharmacies
http://canadaph24.pro/# canadianpharmacyworld com
https://indiaph24.store/# Online medicine order
mexican mail order pharmacies: mexican pharmacy – mexican online pharmacies prescription drugs