[vue3]audio音乐进度条(二)跟随播放进度

/ 6,369评论 / 25420阅读 / 2点赞

上一期我们介绍了外观设计,这把我们聊聊让进度条跟随播放进度走

预期效果


准备


实现

<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>
<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>
<!-- 引入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>
  1. AllenTal说道:

    Viagra pas cher livraison rapide france: Viagra femme sans ordonnance 24h – SildГ©nafil Teva 100 mg acheter

  2. AllenTal说道:

    pharmacie en ligne livraison europe: kamagra oral jelly – pharmacie en ligne france livraison internationale

  3. AllenTal说道:

    Pharmacie Internationale en ligne: pharmacie en ligne pas cher – pharmacies en ligne certifiГ©es

  4. IgnacioGinia说道:

    vente de mГ©dicament en ligne: Acheter Cialis 20 mg pas cher – pharmacies en ligne certifiГ©es

  5. AllenTal说道:

    п»їpharmacie en ligne france: cialis prix – Pharmacie en ligne livraison Europe

  6. AllenTal说道:

    pharmacie en ligne: Levitra pharmacie en ligne – pharmacie en ligne france pas cher

  7. AllenTal说道:

    Meilleur Viagra sans ordonnance 24h: viagra sans ordonnance – Viagra homme sans prescription

  8. IgnacioGinia说道:

    Viagra gГ©nГ©rique pas cher livraison rapide: SildГ©nafil 100 mg sans ordonnance – Acheter Sildenafil 100mg sans ordonnance

  9. AllenTal说道:

    Pharmacie en ligne livraison Europe: achat kamagra – Pharmacie sans ordonnance

  10. AllenTal说道:

    pharmacie en ligne fiable: trouver un mГ©dicament en pharmacie – pharmacie en ligne pas cher

  11. IgnacioGinia说道:

    pharmacie en ligne pas cher: Pharmacie Internationale en ligne – pharmacie en ligne avec ordonnance

  12. AllenTal说道:

    pharmacie en ligne avec ordonnance: Acheter Cialis – acheter mГ©dicament en ligne sans ordonnance

  13. AllenTal说道:

    pharmacie en ligne france fiable: pharmacie en ligne livraison europe – pharmacie en ligne france pas cher

  14. AllenTal说道:

    pharmacies en ligne certifiГ©es: pharmacie en ligne pas cher – pharmacie en ligne france fiable

  15. AllenTal说道:

    trouver un mГ©dicament en pharmacie: Acheter Cialis – п»їpharmacie en ligne france

  16. AllenTal说道:

    Viagra sans ordonnance livraison 24h: viagra sans ordonnance – Viagra gГ©nГ©rique sans ordonnance en pharmacie

  17. AllenTal说道:

    vente de mГ©dicament en ligne: levitra generique – Pharmacie Internationale en ligne

  18. IgnacioGinia说道:

    Viagra gГ©nГ©rique sans ordonnance en pharmacie: viagra en ligne – Quand une femme prend du Viagra homme

  19. AllenTal说道:

    pharmacie en ligne livraison europe: Levitra 20mg prix en pharmacie – pharmacie en ligne france livraison belgique

  20. AllenTal说道:

    Viagra homme prix en pharmacie sans ordonnance: Viagra sans ordonnance 24h – Prix du Viagra 100mg en France

  21. AllenTal说道:

    pharmacie en ligne sans ordonnance: acheter mГ©dicament en ligne sans ordonnance – pharmacie en ligne

  22. RobertDer说道:

    https://levitraenligne.shop/# acheter médicament en ligne sans ordonnance

  23. IgnacioGinia说道:

    Pharmacie sans ordonnance: pharmacie en ligne sans ordonnance – Pharmacie Internationale en ligne

  24. AllenTal说道:

    pharmacie en ligne france livraison internationale: cialis generique – vente de mГ©dicament en ligne

  25. AllenTal说道:

    п»їpharmacie en ligne france: vente de mГ©dicament en ligne – Pharmacie en ligne livraison Europe

  26. IgnacioGinia说道:

    pharmacie en ligne fiable: Acheter Cialis 20 mg pas cher – pharmacie en ligne france livraison belgique

  27. AllenTal说道:

    Pharmacie en ligne livraison Europe: pharmacie en ligne pas cher – п»їpharmacie en ligne france

  28. AllenTal说道:

    pharmacie en ligne france pas cher: cialis generique – acheter mГ©dicament en ligne sans ordonnance

  29. AllenTal说道:

    pharmacie en ligne avec ordonnance: pharmacie en ligne sans ordonnance – п»їpharmacie en ligne france

  30. AllenTal说道:

    pharmacie en ligne france livraison belgique: Pharmacies en ligne certifiees – pharmacie en ligne france livraison belgique

  31. RobertDer说道:

    https://viaenligne.com/# Sildénafil 100 mg sans ordonnance

  32. AllenTal说道:

    Prix du Viagra en pharmacie en France: Meilleur Viagra sans ordonnance 24h – SildГ©nafil 100mg pharmacie en ligne

  33. IgnacioGinia说道:

    pharmacie en ligne france livraison belgique: acheter kamagra site fiable – Pharmacie Internationale en ligne

  34. AllenTal说道:

    Pharmacie sans ordonnance: Cialis sans ordonnance 24h – pharmacie en ligne france pas cher

  35. AllenTal说道:

    pharmacie en ligne france livraison internationale: pharmacie en ligne – acheter mГ©dicament en ligne sans ordonnance

  36. XRumer23jatup说道:

    Hello!

    This post was created with XRumer 23 StrongAI.

    Good luck 🙂

  37. AllenTal说道:

    pharmacie en ligne fiable: Pharmacie en ligne livraison Europe – pharmacie en ligne avec ordonnance

  38. AllenTal说道:

    pharmacie en ligne avec ordonnance: kamagra oral jelly – п»їpharmacie en ligne france

  39. AllenTal说道:

    pharmacie en ligne pas cher: cialis prix – Pharmacie Internationale en ligne

  40. IgnacioGinia说道:

    pharmacies en ligne certifiГ©es: Levitra pharmacie en ligne – pharmacie en ligne sans ordonnance

  41. XRumer23jatup说道:

    Hello.

    This post was created with XRumer 23 StrongAI.

    Good luck 🙂

  42. AllenTal说道:

    pharmacie en ligne france pas cher: Levitra pharmacie en ligne – pharmacie en ligne sans ordonnance

  43. IgnacioGinia说道:

    acheter mГ©dicament en ligne sans ordonnance: cialis generique – pharmacie en ligne avec ordonnance

  44. AllenTal说道:

    pharmacie en ligne fiable: Achat mГ©dicament en ligne fiable – pharmacie en ligne avec ordonnance

  45. RobertDer说道:

    https://phenligne.shop/# pharmacies en ligne certifiées

  46. AllenTal说道:

    pharmacie en ligne sans ordonnance: vente de mГ©dicament en ligne – Achat mГ©dicament en ligne fiable

  47. AllenTal说道:

    Pharmacie en ligne livraison Europe: Pharmacies en ligne certifiees – pharmacie en ligne avec ordonnance

  48. Edwardcit说道:

    pharmacie en ligne france pas cher: pharmacie en ligne pas cher – pharmacie en ligne fiable

  49. Edwardcit说道:

    Pharmacie Internationale en ligne: kamagra gel – pharmacie en ligne livraison europe

  50. Keithhak说道:

    acheter mГ©dicament en ligne sans ordonnance levitra en ligne Pharmacie sans ordonnance

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注