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

前端之家收集整理的这篇文章主要介绍了HTML5canvas 绘制一个圆环形的进度表示实例前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

HTML5 canvas 绘制圆环形进度

先看一下画出来的效果,如下图,这样一个圆环形的进度.

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

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

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

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

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

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

<div class="jb51code">
<pre class="brush:js;">
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<a href="https://www.jb51.cc/tag/biaoqian/" target="_blank" class="keywords">标签</a> 
var canvas = this; 
  // 拿到绘图上下文,目前只<a href="https://www.jb51.cc/tag/zhichi/" target="_blank" class="keywords">支持</a>"2d" 
var context = canvas.getContext('2d'); 

// 将绘图区域清空,如果是第一次在这个画布上画图,画布上没有东西,这步就不需要了
context.clearRect(0,48,48);

// *开始画一个灰色的圆
context.beginPath();
// 坐标移动到圆心
context.moveTo(24,24);
// 画圆,圆心是24,24,半径24,从角度0开始,画到2PI结束,最后一个参数是方向顺时针还是逆时针
context.arc(24,Math.PI 2,false);
context.closePath();
// 填充颜色
context.fillStyle = '#ddd';
context.fill();
//
灰色的圆画完

// 画进度 
context.beginPath(); 
  // 画扇形的时候这步很重要,画笔不在圆心画出来的不是扇形 
context.moveTo(24,24); 
  // 跟上面的圆唯一的区别在这里,不画满圆,画个扇形 
context.arc(24,Math.PI * 2 * process / 100,false); 
context.closePath(); 
context.fillStyle = '#e74c3c'; 
context.fill(); 

// 画内部空白 
context.beginPath(); 
context.moveTo(24,24); 
context.arc(24,21,true); 
context.closePath(); 
context.fillStyle = 'rgba(255,255,1)'; 
context.fill(); 

// 画一条线
context.beginPath();
context.arc(24,18.5,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); 

}

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

大小: 2.4 KB 查看图片附件

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

原文链接:https://www.f2er.com/js/43462.html

猜你在找的JavaScript相关文章