2015-1-30

用canvas作的进度圆形

<!DOCTYPE html>
<html lang="zh-cn">

<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
    * {
        padding: 0;
        margin: 0;
    }
    canvas {
        margin: 10px;
        width: 194px;
        /*border: 1px solid red;*/
    }
    </style>
</head>

<body>
    <canvas  data-per=‘10‘ width=194 height=194></canvas>
    <canvas  data-per=‘24‘ width=194 height=194></canvas>
    <canvas  data-per=‘45‘ width=194 height=194></canvas>
    <canvas  data-per=‘65‘ width=194 height=194></canvas>
    <canvas  data-per=‘77‘ width=194 height=194></canvas>
    <canvas  data-per=‘89‘ width=194 height=194></canvas>
</body>

</html>
<script>
    ;
    (function(window) {
        window.addEventListener(‘load‘, per);
        function per() {
            var aCanvas = document.querySelectorAll(‘canvas‘),
                i = 0;
            for (; i < aCanvas.length; i++) {
                if (aCanvas[i].dataset.per>=0) {
                    Circle(aCanvas[i])
                }
            };

            function Circle(canvas) {
                var canvas = canvas,
                    context = canvas.getContext(‘2d‘),

                    //弧形开始位置为-90°,即0.25弧度
                    num = canvas.dataset.per,
                    scale = (num / 100 - 0.25);

                //渐变 外环
                context.beginPath();
                context.lineWidth = 14;
                var gradiient = context.createLinearGradient(0, 0, 0, 150);
                gradiient.addColorStop(0, ‘#e0e0e0‘);
                gradiient.addColorStop(1, ‘#f0f0f0‘);
                context.strokeStyle = gradiient;
                context.arc(97, 97, 90, 0, Math.PI * 2, false);
                context.stroke();

                //环形 重合底部
                context.beginPath();
                context.shadowColor = "#aaa";
                context.shadowBlur = 2;
                context.shadowOffsetX = -1
                context.shadowOffsetY = -1
                context.strokeStyle = ‘#ccc‘;
                context.arc(97, 97, 80, 0, Math.PI * 2, false);
                context.lineWidth = 13;
                context.stroke()

                //渐变 比例
                context.beginPath();
                context.lineWidth = 13;
                var gradiient = context.createLinearGradient(150, 0, 0, 150);
                gradiient.addColorStop(0, ‘#ff533a‘);
                gradiient.addColorStop(1, ‘#9c1d22‘);
                context.strokeStyle = gradiient;
                context.arc(97, 97, 80, -Math.PI / 2, scale * Math.PI * 2, false);
                context.stroke();

                //内圆 阴影
                context.beginPath();
                context.arc(97, 97, 73, 0, Math.PI * 2);
                context.fillStyle = "#fff";
                context.shadowColor = "#898989";
                context.shadowBlur = 2;
                context.shadowOffsetX = -1
                context.shadowOffsetY = 2
                context.fill();
                context.closePath();

                //文字
                context.beginPath();
                context.fillStyle = ‘#d20001‘;
                // 上边设置的 阴影影响文字,需要重置文字阴影
                context.shadowOffsetX = 0;
                context.shadowOffsetY = 0;
                context.font = ‘44px  微软雅黑‘;

                if (num > 9) {
                    //单双数,文字位置
                    context.fillText(num, 64, 115);
                } else {
                    context.fillText(num, 84, 115);
                }
                context.font = ‘28px 微软雅黑‘;
                context.fillText(‘%‘, 114, 115);
                context.stroke()
            }
        }
    })(window);
    </script>
时间: 2024-10-08 04:37:21

2015-1-30的相关文章

2015.09.30信息系统项目管理师作业

2015.09.30 高级 第八章 项目成本管理重点 1.成本管理的意义和范畴: 2.成本估算:是编制一个为完成项目各活动所需要的资源成本的估算:是一个要钱的计算:是申请资金的: 3.成本预算,是花钱的计划:成本预算的输出就是成本基线: 4.成本失控的原因:成本估算工作和成本预算工作不够准确细致,思想认识存在误区,项目在进行成本估算和预算没有统一规范, 5.成本估算内容对完成项目个项活动所必需的各种资源的成本做出近似的估算,:编制成本估算:编制成本造价:项目造价包括项目成本和项目盈利: 6.编制

2015.9.30.基础数据类型以及输入输出语句

从今天开始不定期更新C语言基础教程,请参考教材(仅仅参考!)进行学习,本系列教程只写基础部分,不会掺杂复杂的细节,这些细节在后续会根据需要再加入,如果有不懂请自行百度尝试解决.该系列文章内容可能来源我本人或者zhrmoe(他的主页:http://zhrmoe.iflab.org)的编写.文章如果有错误欢迎批评指正,谢谢!转载请注明来自本站, //2015.9.30  基本输入输出 #include <stdio.h> /* 基础数据类型 char 字符 int 整数 double 小数 对应的

2015.12.29~2015.12.30真题回顾!-- HTML5学堂

2015.12.29~2015.12.30真题回顾!-- HTML5学堂 吃饭,能够解决饥饿,提供身体运作机能.练习就像吃饭,强壮自己,提升编程技能,寻求编程技巧的最佳捷径!吃饭不能停,练习同样不能停哦! HTML5真题[2015.12.29]题目 学习JavaScript或应用JavaScript进行脚本开发,“变量”这是必须要学会使用的.什么是变量呢?又什么作用呢?ok,大家稍安勿躁哦,试体验体验这题目<HTML5真题[2015.12.29]题目>与 <HTML5真题[2015.12

写在前面-2015.11.30

本人90后,工作不是很久,大学期间主修软件工程,也在课外班学习java开发,后机缘巧合学习测试.截止2015年末,功测1年经验,(纯手工)自动化没有实战经验仅限于了解.目前性能测试一年.主要使用LoadRunner.语言java.Python.jmeter正在学习中,尚未实战经验.目前电网和通信行业性能经验. 以后大方向软件性能测试.目标互联网和金融.当前最迫切的是LR手写脚本(近期持续突进学习中). 观点:功测非自动化,自学就可以了,有大神带意义不大. 自动化功能和性能,入门必须大神带.当然也

InstallShield 2012 Spring优惠升级到最新版本(2015.4.30之前)

InstallShield 2012 Spring即将EOF,所以仍在使用InstallShield 2012 Spring的用户请注意下面内容: InstallShield 2012 Spring升级到最新版本InstallShield 2014将可以享受优惠升级,截止时间2015年4月30号. 具体可咨询InstallShield中国区总代世全软件

2015.7.30 第十五课 sql(新建数据库、创建表、注释、查询语句、新增、更新、删除、联合查询)

1.认识数据库并新建: 1)打开数据库,连接到服务器. 2)服务里类型不用管. 3)服务器名称:打个点“.”表示服务器在本地计算机,如果是托管在别人的服务器上,就输入服务器IP地址. 4)身份验证:如果是windows身份验证,就需要有管理员权限.一般托管在别人的服务器上,(包括正常情况下),都是用SQL身份验证,需要输入sa和密码(密码就是安装时让输入的密码). 2.  建立数据库: 在建立数据库名称时(各种名称时),都遵守一个命名规则: 1)用英文命名 2)每个单词的首字母大写(驼峰原则:首

2015第30周四Java日志组件

Java 日志 API 从功能上来说,日志 API 本身所需求的功能非常简单,只需要能够记录一段文本即可.API 的使用者在需要进行记录时,根据当前的上下文信息构造出相应的文本信息,调用 API 完成记录.一般来说,日志 API 由下面几个部分组成: 记录器(Logger):日志 API 的使用者通过记录器来发出日志记录请求,并提供日志的内容.在记录日志时,需要指定日志的严重性级别.当 程序中需要记录日志时,首先需要获取一个日志记录器对象.一般的日志记录 API 都提供相应的工厂方法来创建记录器

Daily English - 2015/01/30 – 算法(排序)

(function () { /* 通排序 最快最简单的排序 */ var data = [100, 50, 75, 25, 1, 20, 90, 30, 80, 40, 60, 50], result = [], barrel = [], i, j, item; //初始化桶 m = 桶数 for (i = 0; i < 101; i++) { barrel[i] = 0; } //插入桶 n = 排序数的个数 for (i = 0; item = data[i]; i++) { barrel

我关注的一周技术动态 2015.08.30

服务化和资源管理技术 1. Docker基础技术:AUFS http://coolshell.cn/articles/17061.html 要点: 支持层次化镜像是 docker 的一大创新之一, 本文详细介绍了实现层次化镜像的技术手段之一 aufs 的使用方法, 读完之后你就会理解docker层次化镜像的奥秘了. 2. Docker基础技术:DeviceMapper http://coolshell.cn/articles/17200.html 要点: devicemapper 是支持 doc

2015第30周日

成功是一种习惯,失败也是一种习惯.为何会成功?因为坚持不懈.为何会失败?因为放弃.坚持和放弃都是一种习惯.良好的习惯也就是我们走向成功的巨大力量,无怪乎有人说成功与失败的最大区别来自于不同的习惯.一天,一位老师与他年轻的学生一起在树林里散步.老师突然停下来,并仔细看着身边的四株植物.第一株植物是一棵刚刚冒出土的幼苗:第二株植物已经算得上挺拔的小树苗了,它的根牢牢地盘踞在肥沃的土壤中:第三株植物已然枝叶茂盛,差不多与年轻学生一样高大了:第四株植物是一棵巨大的橡树,年轻学生几乎看不到它的树冠. 老师