这是个利用Canvas生成带tooltip的饼图的js,依赖于Mootools。
使用方法很简单,首先引入需要的三个js:mootools(这里用的是mootools-beta-1.2b2.js)和piechart.js以及moocanvas.js(IE下要用canvas需要用到这个js)。
然后将需要生成饼图的数据用一个table封装起来,并且设class为"pieChart"。
| Language | Value |
|---|---|
| JavaScript | 100 |
| CSS | 200 |
| HTML | 180 |
| PHP | 50 |
| MySQL | 320 |
| Apache | 90 |
| Linux | 30 |
效果图请看最上面。饼图会生成在表格的左边。事实上表格已经被重新构建过。这个js生成饼图的主要流程是这样的:
1.首先生成一个Container用来包含所有生成的东西。
2.克隆表格并把它放在container里然后把原来的那个移除。
3.生成一个wrapper用来装住饼图已经用来实现tooltip的图片和map元素。
3.生成canvas元素以及map元素,并插入一张透明的gif(Tooltips功能就是靠map实现的)。
4.从表格搜集数据,并生成颜色,同时赋予表格里每个tr相应的颜色。
5.根据数据和颜色开始生成饼图。
6.再根据数据生成map。
7.添加tooltip。
1.首先生成一个Container用来包含所有生成的东西。
2.克隆表格并把它放在container里然后把原来的那个移除。
3.生成一个wrapper用来装住饼图已经用来实现tooltip的图片和map元素。
3.生成canvas元素以及map元素,并插入一张透明的gif(Tooltips功能就是靠map实现的)。
4.从表格搜集数据,并生成颜色,同时赋予表格里每个tr相应的颜色。
5.根据数据和颜色开始生成饼图。
6.再根据数据生成map。
7.添加tooltip。
这东西生成的饼图很好看,但是局限性也很大。
首先用法很不灵活,因为饼图是固定生成在表格的左边,要修改只能直接去修改源码了。
其次,要控制参数的话,也只能自行去修改源码。
参数的话有下面三个:
1.pieChartRadius。就是圆的半径,默认100.
2.td_label_index。指定哪个td里的数据是表示label(0表示第一个td),默认0。
3.td_index。指定哪个td里的数据为饼图用到的数据。默认1.
兼容性:FF 2, IE 6&7, Safari 2, Opera 9。
官网:http://blog.greghoustondesign.com/canvas-pie-chart-with-tooltips/
-- by icyfire @Home on 2009.06.13