HTML5canvas 绘制一个圆环形的进度表示实例


Posted in Javascript onDecember 16, 2016

HTML5 canvas 绘制圆环形进度

先看一下画出来的效果,如下图,这样一个圆环形的进度.
HTML5canvas 绘制一个圆环形的进度表示实例

 我这里使用HTML5的Canvas来要制作这样一个圆环形的进度,

首先是HTML页面,HTML5的文档标识是:

<!DOCTYPE html>

 这个文档标识要比HTML4的简单多了.

 第二步,在页面上创建一个Canvas画布元素:

<canvas class="process" width="48px" height="48px">61%</canvas>

 我这里创建了一个长宽都是48像素的画布,因为我要画的圆外直径是48个像素的,在canvas元素中间写的是"61%",这个文字可不是显示在圆环中间的那个哦,这个61%是当老的浏览器不支持canvas元素时显示的文字.

好了,到此为止HTML页面的内容就基本完成了,接下来就交给Javascript了,用Javascript来描绘圆环. 

function drawProcess() { 
  // 选出页面上所有class为process的canvas元素,然后迭代每一个元素画图(这里用Jquery的选择器选的) 
  $('canvas.process').each(function() { 
      // 第一部先拿到canvas标签中间的文字,就是那个61%(这里的stringTrim方法是我自己的方法,去前后空格的方法很多的,这里就不贴出来了) 
    var text = commonutil.stringTrim($(this).text()); 
    var process = text.substring(0, text.length-1); 
         
      // 一个canvas标签 
    var canvas = this; 
      // 拿到绘图上下文,目前只支持"2d" 
    var context = canvas.getContext('2d'); 
  // 将绘图区域清空,如果是第一次在这个画布上画图,画布上没有东西,这步就不需要了 
    context.clearRect(0, 0, 48, 48); 
     
  // ***开始画一个灰色的圆 
    context.beginPath(); 
      // 坐标移动到圆心 
    context.moveTo(24, 24); 
      // 画圆,圆心是24,24,半径24,从角度0开始,画到2PI结束,最后一个参数是方向顺时针还是逆时针 
    context.arc(24, 24, 24, 0, Math.PI * 2, false); 
    context.closePath(); 
      // 填充颜色 
    context.fillStyle = '#ddd'; 
    context.fill(); 
      // ***灰色的圆画完 
     
    // 画进度 
    context.beginPath(); 
      // 画扇形的时候这步很重要,画笔不在圆心画出来的不是扇形 
    context.moveTo(24, 24); 
      // 跟上面的圆唯一的区别在这里,不画满圆,画个扇形 
    context.arc(24, 24, 24, 0, Math.PI * 2 * process / 100, false); 
    context.closePath(); 
    context.fillStyle = '#e74c3c'; 
    context.fill(); 
 
    // 画内部空白 
    context.beginPath(); 
    context.moveTo(24, 24); 
    context.arc(24, 24, 21, 0, Math.PI * 2, true); 
    context.closePath(); 
    context.fillStyle = 'rgba(255,255,255,1)'; 
    context.fill(); 
     
  // 画一条线 
    context.beginPath(); 
    context.arc(24, 24, 18.5, 0, Math.PI * 2, true); 
    context.closePath(); 
      // 与画实心圆的区别,fill是填充,stroke是画线 
    context.strokeStyle = '#ddd'; 
    context.stroke(); 
     
      //在中间写字 
    context.font = "bold 9pt Arial"; 
    context.fillStyle = '#e74c3c'; 
    context.textAlign = 'center'; 
    context.textBaseline = 'middle'; 
    context.moveTo(24, 24); 
    context.fillText(text, 24, 24); 
  }

好了,画完了.要看到效果别忘了调用一下画图的drawprocess方法哦.

HTML5canvas 绘制一个圆环形的进度表示实例大小: 2.4 KB 查看图片附件

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

Javascript 相关文章推荐
jQuery Div中加载其他页面的实现代码
Feb 27 Javascript
javascript instanceof,typeof的区别
Mar 24 Javascript
IE下写xml文件的两种方式(fso/saveAs)
Aug 05 Javascript
SWFObject基本用法实例分析
Jul 20 Javascript
js倒计时简单实现方法
Dec 17 Javascript
javascript实现可键盘控制的抽奖系统
Mar 10 Javascript
使用jquery.qrcode.min.js实现中文转化二维码
Mar 11 Javascript
JS设置CSS样式的方式汇总
Jan 21 Javascript
Node.js 异步异常的处理与domain模块解析
May 10 Javascript
微信小程序ajax实现请求服务器数据及模版遍历数据功能示例
Dec 15 Javascript
jQuery简单实现的HTML页面文本框模糊匹配查询功能完整示例
May 09 jQuery
详解如何配置vue-cli3.0的vue.config.js
Aug 23 Javascript
JS数字千分位格式化实现方法总结
Dec 16 #Javascript
jquery插件锦集【推荐】
Dec 16 #Javascript
jQuery Easyui 下拉树组件combotree
Dec 16 #Javascript
JS实现字符串转驼峰格式的方法
Dec 16 #Javascript
详解js数组的完全随机排列算法
Dec 16 #Javascript
JS返回只包含数字类型的数组实例分析
Dec 16 #Javascript
基于Vue如何封装分页组件
Dec 16 #Javascript
You might like
解析php下载远程图片函数 可伪造来路
2013/06/25 PHP
php中字符串和正则表达式详解
2014/10/23 PHP
PHP数组访问常用方法解析
2020/09/05 PHP
JavaScrip单线程引擎工作原理分析
2010/09/04 Javascript
js的压缩及jquery压缩探讨(提高页面加载性能/保护劳动成果)
2013/01/29 Javascript
基于javascript如何传递特殊字符
2015/11/30 Javascript
Immutable 在 JavaScript 中的应用
2016/05/02 Javascript
设置点击文本框或图片弹出日历控件的实现代码
2016/05/12 Javascript
require.js配合插件text.js实现最简单的单页应用程序
2016/07/12 Javascript
归纳下js面向对象的几种常见写法总结
2016/08/24 Javascript
DropDownList控件绑定数据源的三种方法
2016/12/24 Javascript
vue 路由页面之间实现用手指进行滑动的方法
2018/02/23 Javascript
快速了解vue-cli 3.0 新特性
2018/02/28 Javascript
echarts鼠标覆盖高亮显示节点及关系名称详解
2018/03/17 Javascript
axios 封装上传文件的请求方法
2018/09/26 Javascript
梳理一下vue中的生命周期
2020/12/30 Vue.js
[01:10:58]Spirit vs NB Supermajor小组赛 A组败者组决赛 BO3 第二场 6.2
2018/06/03 DOTA
python 多线程实现检测服务器在线情况
2015/11/25 Python
Python编写简单的HTML页面合并脚本
2016/07/11 Python
Python lambda表达式用法实例分析
2018/12/25 Python
python如何从文件读取数据及解析
2019/09/19 Python
window环境pip切换国内源(pip安装异常缓慢的问题)
2019/12/31 Python
Python实现剪刀石头布小游戏(与电脑对战)
2019/12/31 Python
实例讲解CSS3中的box-flex弹性盒属性布局
2016/06/09 HTML / CSS
一款html5 canvas实现的图片玻璃碎片特效
2014/09/11 HTML / CSS
哈萨克斯坦最大的时装、鞋子和配饰在线商店:Lamoda.kz
2019/11/19 全球购物
C#公司笔试题
2014/03/28 面试题
业务员岗位职责
2013/11/16 职场文书
小学生安全保证书
2014/02/01 职场文书
人事文员岗位职责
2014/02/16 职场文书
促销活动总结报告
2014/04/26 职场文书
活动总结怎么写
2014/04/28 职场文书
2015年国庆节寄语
2015/08/17 职场文书
2016大一新生军训心得体会
2016/01/11 职场文书
用Python实现一个打字速度测试工具来测试你的手速
2021/05/28 Python
Django实现drf搜索过滤和排序过滤
2021/06/21 Python