经过css3的旋转属性来实现饼图的效果。封装了一个饼图类,经过实例化来生成各类样式的饼图。css
之前一直用highcharts作饼图的效果,但有时候,一些比较简单的饼图用highcharts的话有点杀鸡用牛刀的感受。因此本身研究了一下如何用css3来达到这个效果。并封装了一下,支持多种样式,写了一个 pie.js 。html
原理是这样的,父容器是一个div,背景颜色是左边一半灰色,右边一半绿色。css3
里面有2个能够旋转的div,小于50%的时候,第一个div是灰色的,顺时针旋转一下就行了,即用灰色遮绿色。git
若是超过50%了,则须要用到第二个绿色的div,也是顺时针旋转一下,用绿色遮盖灰色的底。github
有兴趣的同窗能够fork一下下面的地址看一下源码。动画
github传送门:http://lancer07.github.io/css3_pie/spa
效果 如图所示code
<div class="pie" id="colorful-pie" data-value="0.2"></div>
var myPie = new Pie({ el : ‘#colorful-pie’, // 选择器 animite : true, // 是否要有动画效果 ring : 0.7, // 中间是否要空心,并设置空心的半径 color : '#ff9933' // 自定义饼图的颜色, number :false, // 是否要显示中间的百分比 rotate : -40 // 设置起点角度,默认是从12点钟方向开始的 }); myPie.init(); // 实例化
这样就生成了一个饼状图了。htm
PS:
应该还有更好的方法来实现,但愿你们能告诉我。多谢!图片