HTML5 canvas-CircleProgres.js实现环形饼图刻度效果

 

<script src="../js/dist/circle-progress.js"></script>

 

        //业务需要的系数,可以忽略
        var timeH_no = 30;//换算每个小时相对度数
        var timeM_no = 0.5;//每一分钟相对度数
			
		startH = sleepTime.slice(11,13);
        if(startH.charAt(0) == 0){
        	startH = startH.slice(1, 2);
        }
		startM = sleepTime.slice(14,16);
        if(startM.charAt(0) == 0){
        	startM = startM.slice(1, 2);
        }
		endH = wakeUpTime.slice(11,13);
        if(endH.charAt(0) == 0){
        	endH = endH.slice(1, 2);
        }
		endM = wakeUpTime.slice(14,16);
        if(endM.charAt(0) == 0){
        	endM = endM.slice(1, 2);
        }
		//0~360
		var x = startH * timeH_no + startM * timeM_no;
		var y = endH * timeH_no + endM * timeM_no;
		//x到y差多少度,得到百分比
		var sa = (-Math.PI / 6 * 3 + Math.PI / 6 * 0) + Math.PI / 180 * x;
		var p = 10/3600 * (y - x);

		var two_sa = (-Math.PI / 6 * 3 + Math.PI / 6 * 0) + Math.PI / 180 * y;;


                //图一
		$('.forth.circle_one').circleProgress({
		    size: 239,
		    thickness: 21,
		    startAngle: sa,//
		    value: 0,//
		    lineCap: 'round',
		    fill: { gradient: ['#FF3340'] },
		    //fill: { gradient: new gradientColor('#FF6000','#FFA200',100) }
		});

                //图二
		$('.forth.circle_two').circleProgress({
		    size: 239,
		    thickness: 21,
		    startAngle: two_sa,//
		    value: 0,//
		    lineCap: 'round',
		    fill: { gradient: ['#229EE6'] },
		});

                //图三,颜色渐变还是基于从左到右,没有根据圆环弧度着色
		$('.forth.circle_thr').circleProgress({
		    size: 239,
		    thickness: 21,
		    startAngle: sa,//
		    value: p,//
		    lineCap: 'round',
		    fill: { gradient: ['#FF6000', '#FFA200'] },
		});

效果:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值