canvas简单实现环形进度条

<!DOCTYPE html>  
<html>  
<head>  
    <title>环形进度条</title>  
    <meta charset="utf-8"/>
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0" /> 
    <style>
        *{
            margin: 0;
            padding: 0;
        }
        #canvas{
            border: 1px solid red;
        }
    </style> 
</head>  
<body>  
    <audio src="./jnl.mp3" id="audio" controls="controls"></audio>
    <canvas id="canvas" width="400" height="400"  ></canvas>
    <script>
        var canvas = document.getElementById('canvas')
        var ctx = canvas.getContext('2d')
        ctx.beginPath()
        ctx.arc(200,200,100,-0.5*Math.PI,1.5*Math.PI);
        ctx.strokeStyle = '#EEE'
        ctx.stroke();
        var audio = document.getElementById('audio')
        function drawCavans(percent){
            console.log(percent)
            if(percent == 0){
                ctx.clearRect(0, 0, 400,400 )
                ctx.beginPath()
                ctx.arc(200,200,100,-0.5*Math.PI,1.5*Math.PI);
                ctx.strokeStyle = '#EEE'
                ctx.stroke();
            }
            ctx.beginPath()
            ctx.arc(200,200,100,-0.5*Math.PI,percent*2*Math.PI-0.5*Math.PI);
            ctx.strokeStyle = 'red'
            ctx.stroke();
        }
        audio.addEventListener('timeupdate',function(){
            if (!isNaN(audio.duration)) {
                var percent = audio.currentTime/audio.duration; //用时间比来获取进度条的值
               }
            drawCavans(percent)
        })
    </script>
</body>
</html>

猜你喜欢

转载自blog.csdn.net/csdnlizhiyong/article/details/81412185