如何基于HTML5实现数据统计饼图动画特效

html-css045

如何基于HTML5实现数据统计饼图动画特效,第1张

一提到插件,我们得需要了解它的一些配置属性,从官方得知共有10个属性,如下:

barColor

默认:#ef1e25

说明:指的是该curcular栏的颜色。你可以通过像RGB,RGBA十六进制或字符串颜色任一有效的CSS颜色字符串。 但你也可以通过接受目前的百分比值来返回一个动态生成的颜色的功能。

trackColor

默认:#f2f2f2

说明:轨道颜色。

scaleColor

默认:#dfe0e0

说明:刻度线的颜色。

lineCap

默认:round

说明:定义栏线的终点的形状。可能的值有: 对接,圆形和方形 。

lineWidth

默认:3

说明:中间轨道宽度。

size

默认:110

说明:饼图大小。规定为一个正方形。

animate

默认:false

说明:设置动画缓冲时间。

onStart

默认:$.noop

说明:动画开始回调函数。

onStop

默认:$.noop说明:动画结束回调函数。

onStep

默认:$.noop说明:动画过程中回调函数。

图表的背景一般是精心设计的它有一定的梯度、网格线、号码标签和月份名称等等,如果直接通过JavaScript进行绘制可能需数十行或上百行的代码。但是如果我们直接通过Canvas直接创建一个背景图。我们只需要在其他的软件如PS上绘制好一个背景图,然后加载到Canvas上就可以了。

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8">

<title>绘制图表</title>

</head>

<body>

<div id="result-stub" class="well hidden">

<canvas id="canvas" width="345" height="345">

<p>你的浏览器不支持canvas元素</p>

</canvas>

</div>

<script>

//   1、要绘制图表首先我们要获取到canvas对象以及具有图表背景的图片对象。

var

canvas = document.getElementById('canvas'),

context = null

context = canvas.getContext('2d')

var img = new Image()

img.src ='chart-background.png'//这里是一张具有图表背景的图片

//    2、绘制一个具有图表背景的图片后再根据要绘制的曲线图各个点在canvas是中的坐标绘制直线。

img.onload = function() {

//绘制图片

context.drawImage(img, 0, 0)

//绘制直线

context.beginPath()

context.moveTo(70, 105)

context.lineTo(105, 132)

context.lineTo(142, 250)

context.lineTo(176, 175)

context.lineTo(212, 145)

context.lineTo(245, 197)

context.lineTo(280, 90)

context.stroke()

}

</script>

<script src="jquery.js"></script>

</body>

</html>

3、本示例的最终绘制效果如下:这样一个曲线图表就绘制出来的,其他的图表也可以用类似的方法进行绘制。

这些都是有关于HTML5新特性的一些应用。给你推荐一个教程网站秒秒学,该网站上有关于HTML5新特性的讲解。

canvas能做什么?

canvas是HTML5中的新元素,你可以使用javascript用它来绘制图形、图标、以及其它任何视觉性图像。它也可用于创建图片特效和动画。如果你掌握了完整的命令,你可以用canvas创建丰富的web应用程序。如果你想很好的使用canvas,你首先应该很好的掌握javascript。

这篇文章是一篇基础教程,你能了解一些设计方法。比如用HTML5 canvas 进行图形设计。

用HTML5 canvas设计

设计和开发一个web页面会包含很多的内容,用户首先需要有一个支持HTML canvas的浏览器。

首先创建一个HTML5文档页面,设置document type是HTMl5的;

其次在页面body区域添加一个canvas标签:

<canvas></canvas>

第三、给这个canvas定义一个id属性,这样方便我们在js中调用它。添加一个宽和高属性,在canvas标签中添加一个当浏览器不支持的时候显示给用户的内容。下面是列子代码:

<canvas id="canvastest" width="500" height="600">

<p>你的浏览器不支持HTML5 canvas,请更新您的浏览器!</p>

</canvas>

现在我们创建了一个包含HTML5 canvas 元素的空白画布,我们将使用js和canvas元素的方法来创建我们的图像。

添加一个javascript用HTMl5 canvas的方法:

var canvasTest=document.getElementById('canvastest')//获取canvas元素;

var testcontext=canvasTest.getContext('2d')

使用javascript来创建你的画布,你可以使用矩形、圆圈和三角形,并使用线、幻灯片和渐变来创建你的设计。

下面是完成的代码:

var canvasTest=document.getElementById('canvastest')

var testcontext=canvasTest.getContext('2d')

// create rectangle

testcontext.fillStyle='rgb(0,125,125)'

testcontext.fillRect(10,10,250,180)

// create circle

testcontext.beginPath()

testcontext.arc(300, 340, 100, 0, Math.PI * 2, true)

testcontext.closePath()

testcontext.fillStyle='rgb(75,10,125)'

testcontext.fill()

testcontext.stroke()

我们可以将上面的代码加入window.onload,或者jQuery的ready方法里,当文档加载完,将会创建文明的图形。

一些HTML5 canvas 图像解决方案

用与HTML5 Canvas元素你可以开发动态绘图对象比如如可视化信息或数据图。HTML5 canvas 可以在javascript的帮助下很容易的绘制二维图形。让我们来看一下HTML5 canvas元素的一些数据图应用。

1. HumbleFinance

HumbleFinance是用js开发的一个开源的数据可视化图表,它用HTML5 canvas生成可视化图表数据,它可以用一个轴来展示任何两个二维的数据集。

地址: http://www.humblesoftware.com/finance/index

2.Graphr

Graphr是一个用HTML5 canvas写的一个计算器应用,有每个图像计算器应有的基本功能。

地址:http://www.graphr.org/

3.用HTML5和jQuery创建的华丽的动画饼图

你可以用javascript和HTML5来创建一个交互式饼图,有华丽的动画效果。这在之前只能用flash来完成,现在也可以使用最新的HTML5技术了。

地址:http://cyberpython.github.com/AwesomeChartJS/

4. AwesomeJS

AwesomeJS 能够让你创建简单有用的图表,而仅需几行代码即可。这是一个基于HTML5和canvas的javascript库。

地址:http://cyberpython.github.com/AwesomeChartJS/

5.Ticker Plot(股票图)

Ticker Plot(股票图)是每一个在工作是使用图标的web开发人员都必备的一个图表工具。这是一个开源的项目,它使用HTML5 canvas在画布上绘制图形符号和鼠标事件。Ticker Plot(股票图)是专门为股票行情和技术分析设计的。