首页前端开发HTMLH5动画--canvas绘制圆环百分比进度的实例

H5动画--canvas绘制圆环百分比进度的实例

时间2024-01-22 19:10:50发布访客分类HTML浏览186
导读:收集整理的这篇文章主要介绍了H5动画--canvas绘制圆环百分比进度的实例,觉得挺不错的,现在分享给大家,也给大家做个参考。1.效果图 2.原理 第一步绘制一个整圆颜色自定义,第二部绘制一个内圆,其半径要小于外圆颜色自定 最后一步按照百分...
收集整理的这篇文章主要介绍了H5动画--canvas绘制圆环百分比进度的实例,觉得挺不错的,现在分享给大家,也给大家做个参考。

1.效果图


2.原理
第一步绘制一个整圆颜色自定义,第二部绘制一个内圆,其半径要小于外圆颜色自定
最后一步按照百分比绘制第三个圆,颜色自定。
要实现动态绘制第三步的效果,只要添加一个定时器的功能,每隔一段时间绘制一段距离,设定一个阀值
当大于这个阀值得时候就清空这个定时器,这个阀值其实就是要显示的百分比值。每次绘制0.01.
注意:在定时器内绘制时,要把第二步绘制内圆,空白圆也在定时器中绘制。

3.知识点
绘制公式:arc(x, y, radius, startRad, endRad, anticlockwise)
在canvas画布上绘制以坐标点(x,y)为圆心、半径为radius的圆上的一段弧线。这段弧线的起始弧度是startRad,结束弧度是endRad。这里的弧度是以x轴正方向(时钟三点钟)为基准、进行顺时针旋转的角度来计算的。anticlockwise表示是以逆时针方向还是顺时针方向开始绘制,如果为true则表示逆时针,如果为false则表示顺时针。anticlockwise参数是可选的,默认为false,即顺时针。

4.js源代码

script src="jquery.min.js">
    /script>
    script>
function circlePRogress(value,average){
        VAR canvas = document.getElementById("yuan");
        var context = canvas.getContext('2d');
        var _this = $(canvas),    value= Number(value),// 当前百分比,数值    average = Number(average),// 平均百分比    color = "",// 进度条、文字样式    maxpercent = 100,//最大百分比,可设置    c_width = _this.width(),// canvas,宽度    c_height =_this.height();
// canvas,高度    // 判断设置当前显示颜色    if( value== maxPErcent ){
            color="#29c9ad";
    }
    else if( value>
 average ){
            color="#27b5ff";
    }
else{
            color="#ff6100";
    }
        // 清空画布    context.clearRect(0, 0, c_width, c_height);
        // 画初始圆    context.beginPath();
        // 将起始点移到canvas中心    context.moveTo(c_width/2, c_height/2);
        // 绘制一个中心点为(c_width/2, c_height/2),半径为c_height/2,起始点0,终止点为Math.PI * 2的 整圆    context.arc(c_width/2, c_height/2, c_height/2, 0, Math.PI * 2, false);
        context.closePath();
        context.fillStyle = '#ddd';
     //填充颜色    context.fill();
        // 绘制内圆    context.beginPath();
        context.strokeStyle = color;
        context.lineCap = 'square';
        context.closePath();
        context.fill();
        context.lineWidth = 10.0;
//绘制内圆的线宽度    function draw(cur){
            // 画内部空白          context.beginPath();
              context.moveTo(24, 24);
              context.arc(c_width/2, c_height/2, c_height/2-10, 0, Math.PI * 2, true);
              context.closePath();
              context.fillStyle = 'rgba(255,255,255,1)';
      // 填充内部颜色        context.fill();
            // 画内圆        context.beginPath();
            // 绘制一个中心点为(c_width/2, c_height/2),半径为c_height/2-5不与外圆重叠,        // 起始点-(Math.PI/2),终止点为((Math.PI*2)*cur)-Math.PI/2的 整圆cur为每一次绘制的距离        context.arc(c_width/2, c_height/2, c_height/2-5, -(Math.PI / 2), ((Math.PI * 2) * cur ) - Math.PI / 2, false);
            context.stroke();
            //在中间写字          context.font = "bold 18pt Arial";
      // 字体大小,样式        context.fillStyle = color;
      // 颜色        context.textAlign = 'center';
      // 位置        context.textBaseline = 'middle';
              context.moveTo(c_width/2, c_height/2);
      // 文字填充位置        context.fillText(value+"%", c_width/2, c_height/2-20);
            context.fillText("正确率", c_width/2, c_height/2+20);
    }
        // 调用定时器实现动态效果    var timer=null,n=0;
    function loadCanvas(nowT){
        timer = setInterval(function(){
                if(n>
nowT){
                    clearInterval(timer);
            }
else{
                    draw(n);
                    n += 0.01;
            }
        }
    ,15);
    }
        loadCanvas(value/100);
        timer=null;
}
    ;
     /script>
    

最后需用调用circleProgress这个方法,并把相应的参数穿进去。博主是这样写的,通过点击按钮触发。。。

input onclick="circleProgress(10,50)" value="画圆" type="button">
    canvas id="yuan">
    /canvas>
    

【相关推荐】

1. HTML5 canvas基本绘图之绘制曲线

2. 详解canvas实现圆弧、圆环进度条的实例方法

3. 分享h5 canvas圆圈进度条的实例代码

4. 小程序开发之利用co处理异步流程的实例教程

5. H5 canvas实现圆形动态加载进度实例

以上就是H5动画--canvas绘制圆环百分比进度的实例的详细内容,更多请关注其它相关文章!

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!

canvas圆环

若转载请注明出处: H5动画--canvas绘制圆环百分比进度的实例
本文地址: https://pptw.com/jishu/583268.html
HTML5中属性download的详细介绍 详解canvas实现圆弧、圆环进度条的实例方法

游客 回复需填写必要信息