上一期我们介绍了外观设计,这把我们聊聊让进度条跟随播放进度走
目录
预期效果
准备
- 在此之前,你需要有以下基础:
- 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>
- 最终效果:
- 默认是静音的,可以点击播放试试
can you buy generic clomid price: buy clomid – clomid without dr prescription
ivermectin drug buy Stromectol minocycline 100 mg without doctor
Узнай все о выпрямление перегородки носасептопластика в москве
After I initially left a comment I appear to have clicked the -Notify me when new comments are added- checkbox and now every time a comment is added I recieve 4 emails with the same comment. Is there an easy method you are able to remove me from that service? Cheers.
lisinopril1st: buy Lisinopril online – cheapest Lisinopril
Thanks for thr great article!
I absolutely love your blog.. Great colors & theme. Did you make this website yourself? Please reply back as I’m attempting to create my very own site and want to learn where you got this from or just what the theme is named. Thank you.
Узнай все о исправление перегородки носа ценаисправление перегородки носа операция цена
prednisone 20mg prescription cost: buy prednisone – prednisone brand name india
priligy max pharm: buy dapoxetine online – dapoxetine price
Greetings! Very useful advice within this post! It is the little changes that make the largest changes. Many thanks for sharing!
Nice post. I learn something new and challenging on websites I stumbleupon everyday. It will always be helpful to read content from other authors and practice something from other web sites.
Lisinopril 1st: lisinopril 2.5 mg price – lisinopril1st
stromectol buy Ivermectin online stromectol uk
https://plavixclo.com/# plavix best price
Pretty! This was a really wonderful article. Thanks for providing this information.
mexican drugstore online http://mexicanpharmgate.com/ mexican online pharmacies prescription drugs
no prescription online prednisone: prednisone ray pharm – order prednisone
Узнай все о гистерорезектоскопия полипа маткиудаление полипа шейки матки
buy prednisone 40 mg: order Prednisone – buy prednisone without rx
lisinopril1st: buy Lisinopril 1st – lisinopril1st
http://iverfast.com/# stromectol medicine
reputable mexican pharmacies online http://mexicanpharmgate.com/ buying from online mexican pharmacy
Узнай все о удаление полипа в матке гистероскопияудаление полипа эндометрия
Introducing to you the most prestigious online entertainment address today. Visit now to experience now!
buy cheap amoxicillin: Amoxicillin for sale – amoxicillin 500mg buy online canada
Introducing to you the most prestigious online entertainment address today. Visit now to experience now!
get cheap clomid without a prescription: rexpharm – can i buy generic clomid without a prescription
amoxicillin 500 tablet: Com Pharm – buy amoxicillin 500mg usa
prednisone 20 mg tablets: cheap prednisone – can you buy prednisone
where buy generic clomid tablets: generic clomid – can you get clomid online
can i purchase clomid now: clomid rex pharm – buy cheap clomid without prescription
clomid without rx: cheap clomid – where to buy clomid online
I have to thank you for the efforts you have put in writing this blog. I am hoping to see the same high-grade blog posts by you in the future as well. In fact, your creative writing abilities has encouraged me to get my own, personal blog now 😉
how much is prednisone 5mg: order Prednisone – prednisone in mexico
prednisone canada pharmacy: 80 mg prednisone daily – prednisone 2.5 mg price
Really liked reading this entry. It’s extremely articulate and packed with helpful information. Thank you for sharing this.
order clomid no prescription: clomid purchase online rex pharm – can i order generic clomid no prescription
amoxicillin 250 mg capsule: amoxil com pharm – where to buy amoxicillin
generic prednisone otc: Prednisone Without Prescription – prednisone 10 tablet
order amoxicillin no prescription: Amoxicillin for sale – amoxicillin 500mg price
can i get clomid no prescription: get cheap clomid without insurance – can i purchase clomid tablets
Introducing to you the most prestigious online entertainment address today. Visit now to experience now!
cost of clomid now: clomid purchase online rex pharm – order generic clomid without rx
Узнай все о варикоцеле левого яичка варикоцеле причины
This is the perfect site for everyone who hopes to find out about this topic. You realize so much its almost hard to argue with you (not that I personally would want to…HaHa). You certainly put a new spin on a topic that has been written about for a long time. Wonderful stuff, just excellent.
Adored the insight in this article. It’s highly detailed and full of useful information. Fantastic job!
Fantastic entry. I found the details extremely helpful. Adored the method you detailed everything.
cost of cheap clomid: clomid – get clomid online
Узнай все о варикоцеле левого яичка заболевание варикоцеле