`
redstarofsleep
  • 浏览: 443930 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

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

 
阅读更多

文章搬至CSDN, 最新内容请访问: http://blog.csdn.net/redstarofsleep/article/details/45092115

 

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

 我这里使用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方法哦.

 

 

转载请注明出处

  • 大小: 2.4 KB
3
2
分享到:
评论
4 楼 藏在心底 2015-09-07  
   
3 楼 redstarofsleep 2013-09-12  
zhong13760 写道
给个源码啊。不全的吧

这个代码就是全的,您再研究研究
2 楼 zhong13760 2013-09-11  
给个源码啊。不全的吧
1 楼 zhong13760 2013-09-11  
运行没效果啊。看不到的

相关推荐

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

    HTML5 canvas 绘制圆环形进度 先看一下画出来的效果,如下图,这样一个圆环形的进度.  我这里使用HTML5的Canvas来要制作这样一个圆环形的进度, 首先是HTML页面,HTML5的文档标识是: &lt;!DOCTYPE html&gt;  这个文档...

    html5 canvas进度条圆环图表统计动画特效

    HTML5 Canvas是Web开发中的一个强大工具,它允许开发者在网页上进行动态图形绘制,创造出丰富的视觉效果。在这个“html5 canvas进度条圆环图表统计动画特效”项目中,我们主要探讨以下几个关键知识点: 1. **Canvas...

    环形进度.zip,采用canvas绘制。

    在本案例中,我们关注的是使用HTML5的Canvas API来实现这样一个圆环形的进度条。Canvas是一个非常强大的图形绘制工具,它允许开发者在网页上动态绘制2D图形,无需依赖任何额外的插件。 首先,我们需要了解Canvas的...

    canvas绘制音频波形-纯js自写

    在本文中,我们将深入探讨如何使用HTML5的Canvas API来绘制音频波形,这是一个纯JavaScript实现的方法。Canvas作为Web开发中的一个强大工具,允许我们进行动态图形绘制,非常适合用来展示音频文件的波形。让我们一起...

    基于canvas 2D实现微信小程序自定义组件-环形进度条

    我们还需要实现一个`drawCircle`方法,使用canvas 2D API绘制环形进度条。这包括设置线条宽度、颜色,以及使用`arc()`方法绘制圆弧,`beginPath()`和`stroke()`完成路径的绘制。 ```javascript // component.js ...

    canvas实现环形进度条效果

    Canvas 是 HTML5 中的一个重要元素,用于创建图形用户界面。它可以用来绘制图形、图像和文字等。Canvas 的绘制区域是一个矩形,通过获取 Canvas 对象的 2D 绘图上下文,可以在其上绘制各种图形。 知识点 2:环形...

    canvas画环形进度条

    本文将详细讲解如何使用HTML5的Canvas API来创建一个环形进度条,并实现动画效果。 首先,我们需要在HTML文档中创建一个`&lt;canvas&gt;`元素,为后续的绘图提供画布: ```html &lt;!DOCTYPE html&gt; &lt;html lang="zh"&gt; ...

    HTML5 canvas圆形百分比进度条动画代码.zip

    例如,绘制一个完整的圆(360度)可以表示100%的进度: ```javascript var percent = 0.8; // 80% 进度 ctx.beginPath(); ctx.arc(canvas.width / 2, canvas.height / 2, radius, 0, Math.PI * 2 * percent, false)...

    canvas绘制环形进度条

    在本文中,我们将深入探讨如何使用HTML5的`canvas`元素来绘制环形进度条。环形进度条是一种常见的UI组件,通常用于显示任务或进程完成的百分比。以下是如何利用`canvas`实现这一功能的详细步骤和相关知识点: 1. **...

    自定义环形进度圈,带progress

    标题“自定义环形进度圈,带progress”指的是创建一个可显示进度的环形图形,这通常用于表示某个任务或过程的完成度。这种视图在很多应用中都有应用,比如加载动画、健康应用的运动进度等。 在描述中提到的...

    HTML5 Canvas流体加载动画特效.zip

    HTML5 Canvas技术是现代网页开发中的一个重要组成部分,它允许开发者在网页上绘制图形,实现动态交互效果。"HTML5 Canvas流体加载动画特效"是一种利用Canvas API创建的视觉吸引人的加载指示器,它以圆形彩色流体环形...

    html5 canvas神奇宝贝球Loading加载动画特效

    HTML5 Canvas是Web开发中的一个强大工具,它允许开发者在网页上进行动态图形绘制,创造出丰富的交互式用户体验。在这个特定的案例中,“html5 canvas神奇宝贝球Loading加载动画特效”是一个利用HTML5 Canvas元素实现...

    圆形(环形)进度条

    onDraw()方法中,利用Canvas和Paint对象,通过arcTo()函数绘制圆弧来表示进度。 2. **属性定制**:为了使组件具有可配置性,开发者可能定义了一些自定义属性,如进度颜色、背景颜色、进度宽度、圆环半径等。这些...

    canvas-arc-draw-master环形进度条

    `canvas-arc-draw-master`项目就是一个示例,它展示了如何通过JavaScript操纵canvas绘制动态的环形加载效果。下面将详细讲解相关知识点。 1. **HTML5 Canvas**: HTML5中的canvas是用于图形绘制的二维画布,通过...

    微信小程序绘制半圆(弧形)进度条

    本文实例为大家分享了微信小程序绘制半圆进度条的具体代码,供大家参考,具体内容如下 wxml: &lt;canvas canvas-id=canvasProgress xss=removed&gt;&lt;/canvas&gt; &lt;canvas canvas-id=canvasProgressReal style=...

    Canvas半圆环进度条动画特效.zip

    【标题】"Canvas半圆环进度条动画特效.zip"是一个包含使用HTML5 Canvas技术实现的半圆环形进度条动画效果的代码资源。这个特效在网页设计中常常用于展示数据加载或者进度指示,视觉效果独特且吸引用户注意力。Canvas...

    Qt Qml圆形进度条动画(4分之3圆) 带进度条动画,类似汽车仪表盘动画

    在本文中,我们将深入探讨如何使用Qt的QML模块创建一个圆形进度条动画,特别是实现四分之三圆的进度指示器,同时带有类似于汽车仪表盘的动态效果。Qt是一个跨平台的应用程序开发框架,广泛应用于桌面、移动和嵌入式...

    Android 圆形颜色渐变进度条 自定义控件

    首先,我们需要计算圆的半径,然后创建一个`Paint`对象用于设置渐变颜色。可以使用`Shader`的`LinearGradient`或`SweepGradient`来实现颜色渐变。`LinearGradient`沿指定方向创建线性渐变,`SweepGradient`则沿圆周...

Global site tag (gtag.js) - Google Analytics