播放音樂進度條


css頁面

*{
padding: 0;
margin: 0;    
}
.btn{
    height: 32px;
    width: 32px;
    cursor: pointer;
}
.play{
    display: block;
    width: 40px;
    height: 40px;
    margin-top: -5px;
}
.pause{
    display: none;
    width: 40px;
    height: 40px;
    margin-top: -5px;
}
.audioPlayer{
    position: relative;
    width: 570px;
    height: 42px;
    border-radius: 10px;
    margin: 300px auto;
    padding-top: 14px;
    padding-left: 20px;
    background-color: #1b6d85;
}

.totalProgress{
    cursor: pointer;
    position: absolute;
    top: 26px;
    left: 72px;
    width: 500px;
    height: 8px;
    background-color: white;
    border-radius: 10px;
}

.currentProgress{
    width: 0;
    height: 100%;
    -webkit-border-top-left-radius:10px ;
    -webkit-border-bottom-left-radius: 10px;
    background-color: #00a1d6;
}
.time{
    display: block;
    margin-left: 10px;
    position: absolute;
    top: 2px;
    left: 72px;
    color: white;
}

js

var audio = document.getElementById('audio');
var totalProgress = $('.totalProgress');
var currentProgress = $('.currentProgress');
var currentTime = $('.currentTime');
var totalTime = $('.totalTime');
var timer;//計時器

//按鈕單擊時 
$('.btn').on('click',function(){
    //如果音頻暫停
    if(audio.paused){
        audio.play();//播放音頻
        //更改播放按鈕
        $(".play").css({'display':'none'});
        $(".pause").css({'display':'block'});
        //計時器實時更改進度條
        timer= setInterval(function(){
          if (audio.ended) {
            //如果音頻播放結束
        $(".play").css({'display':'block'});
        $(".pause").css({'display':'none'});
                } else{
                    //更改時間(duration屬性返回音頻的長度,以秒計)                  
                currentTime.text(audio.currentTime);
                totalTime.text(audio.duration); 
                    //更改進度條
                    var ratio = audio.currentTime/audio.duration;
                    currentProgress.css({'width':ratio*100+'%'});
                }
            },100);
    }else{
        audio.pause();//暫停音頻
        //更改播放按鈕
        $(".play").css({'display':'block'});
        $(".pause").css({'display':'none'});
    }
});

//單擊進度條更改進度
totalProgress.on('click',function(ev){
    //獲取百分比
    var ratio = getRatio(ev);
    currentProgress.css({'width':ratio * 100 + '%' });
    //更改音頻進度條
    audio.currentTime = audio.duration * ratio;
});

function getRatio (ev) {
    //總進度條的實際長度
    var totawidth = totalProgress[0].offsetWidth;
    //總進度條的X坐標
    var totalX = totalProgress.offset().left;
    //鼠標的x坐標
    var mouseX = ev.clientX;
    //求出百分比
    var ratio = (mouseX-totalX) / totawidth;
    return ratio;
}

HTML

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <title>音樂播放器</title>
        <link rel="stylesheet" type="text/css" href="css/a.css"/>
        </head>
    <body>
        <script src="https://cdn.staticfile.org/jquery/1.10.2/jquery.min.js"></script>
                <div class="audioPlayer">
            <div class="time">
                <span class="currentTime">00:00</span>
                /
                <span class="totalTime">00:00</span>
            </div>
            <div class="btn">
                <img src="img/b.png" class="play"/>
                <img src="img/a.png" class="pause"/>
            </div>
            <!--controls autoplay loop-->
            <audio id="audio"  src="音樂地址"></audio>
            <div class="totalProgress">
                <div class="currentProgress"></div>
            </div>
        </div>
        <script src="js/a.js" type="text/javascript" charset="utf-8"></script>
    </body>
    
    </html>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM