canvas实现圆形进度条

先看一下效果图

屏幕快照 2018-12-10 下午10.54.23.png
屏幕快照 2018-12-10 下午10.54.13.png
<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <style type="text/css">
            canvas{
                border:1px solid red;
            }
        </style>
    </head>
    <body>
        <canvas id="mycanvas" width="400" height="400">
            80%
        </canvas>
    </body>
    <script type="text/javascript">
        var canvas = document.getElementById("mycanvas");
        var context = canvas.getContext("2d");
        function draw(percent){
            context.beginPath();
            context.arc(50,50,50,0,Math.PI*2);
            context.strokeStyle = "red";
//          context.lineWidth = 1;
            context.stroke();
            //进度圆
            context.beginPath();
            var per = 2*Math.PI/100*percent;
            context.arc(50,50,40,0,per);
            context.lineWidth = 8;
            var grd = context.createLinearGradient(0,0,100,0);
            grd.addColorStop(0,"blue");
            grd.addColorStop(0.5,"yellow");
            grd.addColorStop(1,"green");
            context.strokeStyle = grd;
            context.stroke();
        }
        function drawText(text){
            context.textAlign = "center";
            context.textBaseline = "middle";
            context.font = "bold 20px 微软雅黑";
            context.strokeStyle = "orangered";
            context.lineWidth = 2;
            context.strokeText(text,50,50);
            context.stroke();
        }
        var start = 0;
        setInterval(function(){
            //清空画布
            context.clearRect(0,0,canvas.width,canvas.height);
            var percentText = canvas.innerHTML;
            console.log("("+percentText+")");  //有空格
            percentText = percentText.trim();  //去掉首尾空格
            //去掉百分号
            percentText = percentText.substr(0,percentText.length-1);
            start++;
            if(start>=~~percentText){
                start=~~percentText;
            }
            console.log(percentText);
            console.log(typeof ~~percentText);
            draw(start);
            drawText(start+"%");
        },100)
    </script>
</html>

干货免费学习啦,哪里不懂可以私信我,一起进步哈!

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 先给大家看看效果图,然后在上代码。 1. canvas的HTML部分很简单就一个canvas标签 canvas画布...
    马大哈tt阅读 7,122评论 2 4
  • 功夫熊猫 2017年,世界思维导图锦标赛在中国举行!思维导图在中国的传播开启一幅崭新画卷! 什么是真正的传播,真正...
    我是骄阳似火阅读 2,962评论 2 5
  • 为什么有吃有穿有住, 还是觉得不那么幸福? 还是常有不安? 还是常有不满足? 生活在城市里的人, 没日没夜、争分夺...
    智爱189阅读 2,999评论 0 0
  • 2017.11.2.星期四晴 一天又结束了,孩子们的期中考试也一天天临近,看看其他孩子的表现,再看看自己的...
    899037e3b5bb阅读 1,355评论 0 0

友情链接更多精彩内容