excanvas 地址:http://excanvas.sourceforge.net/

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>canvas</title>
<style>
</style> <!--[if lte IE 9]>
<script src="../html5shiv.js"></script>
<script src="excanvas.js"></script>
<script src="../jquery-1.11.0.min.js"></script>
<!--[if gt IE 9]><!-->
<script src="../jquery-2.1.0.min.js"></script>
<![endif]-->
</head> <body>
<canvas id="pie" width="100" height="100" data-ratio="0.65_0.15_0.20" ></canvas>
<canvas class="doughnut" width="100" height="100" data-ratio="0.66_0.34"></canvas>
<script>
(function($){
$.fn.extend({
pieChart: function(o){
this.each(function(m, n){
var target = $(n),
ratio = target.data('ratio').split('_'),
colors = o.colors,
ctx = n.getContext('2d'),
center = Math.floor(target.height()/2), //圆心
radius = center - (o.borderWidth || 0), //半径
startAngle = Math.PI * 1.5, //起始弧度
endAngle = Math.PI * 1.5; //结束弧度 ctx.fillStyle = o.borderCorlor || '#ffffff';
ctx.arc(center, center, center, 0, Math.PI * 2, true);
ctx.fill(); $.each(ratio, function(i, v){
endAngle = endAngle - v * Math.PI * 2; //结束弧度
ctx.fillStyle = colors[i];
ctx.beginPath(); ctx.moveTo(center, center); //移动到到圆心
ctx.arc(center, center, radius, startAngle, endAngle, true);
ctx.closePath();
ctx.fill(); if(o.stroke){
ctx.strokeStyle = o.stroke.color || '#ffffff';
ctx.lineWidth = o.stroke.width || 1;
ctx.stroke();
}
startAngle = endAngle; //设置起始弧度
});
}); }, doughnutChart: function(o){
this.each(function(m, n){
var target = $(n),
ratio = target.data('ratio').split('_'),
colors = o.colors,
ctx = n.getContext('2d'),
center = Math.floor(target.height()/2),
radius = center,
startAngle = Math.PI * 1.5,
endAngle = Math.PI * 1.5; $.each(ratio, function(i, v){
//弧度 = 角度 * Math.PI / 180
//v*360*Math.PI/180 = v * Math.PI * 2
endAngle = endAngle - v * Math.PI * 2;
ctx.fillStyle = colors[i];
ctx.beginPath(); ctx.moveTo(center, center);
ctx.arc(center, center, radius, startAngle, endAngle, true);
ctx.closePath();
ctx.fill();
startAngle = endAngle;
}); ctx.fillStyle = o.centerColor;
ctx.beginPath();
ctx.arc(center, center, radius-o.borderWidth, 0, Math.PI * 2, true);
ctx.fill();
});
}
}); $(window).on('load', function(){
$('#pie').pieChart({
colors: ['#7cb228', '#abd667', '#ededed'],
borderWidth: 2,
borderCorlor: '#7cb228'
// stroke: {
// color: '#ff0000',
// width: 2
// }
}); $('.doughnut').doughnutChart({
colors: ['#7cb228', '#ededed'],
centerColor: '#ffffff',
borderWidth: 10
});
});
})(jQuery); </script>
</body>
</html>

最新文章

  1. VMWare Tools 和 Shared folder(共享文件夹)
  2. windows或mac上对iOS设备截图
  3. Win10家庭版升级专业版密钥
  4. python bytes to string
  5. QML Image: Cannot open: qrc:///new.pic.png
  6. oracle方案是什么?
  7. AC日记——计算多项式的导函数 openjudge 1.5 38
  8. SpringMVC中的设计模式
  9. git merge 与 rebase 的区别
  10. android 根据包名打开app程序
  11. (二) 一起学 Unix 环境高级编程 (APUE) 之 文件 IO
  12. centos7扩展磁盘空间
  13. vc关于文件拷贝
  14. Kaggle Competition Past Solutions
  15. 【原】Spring和Dubbo整合案例和过程
  16. 【转载】Linux的inode的理解
  17. ZOJ 1940 Dungeon Master【三维BFS】
  18. 编写CentOS的System V init启动脚本
  19. JPA查询单个字段和多个字段返回类型总结
  20. gulp监听文件变化,并拷贝到指定目录(转)---参考记录

热门文章

  1. JS——html基本结构
  2. C# 设定时间内自动关闭提示框
  3. git怎么克隆远程仓库到本地仓库
  4. Render2
  5. nodejs 文件操作模块 fs
  6. 【原创】基于NodeJS Express框架开发的一个VIP视频网站项目及源码分享
  7. [如何在Mac下使用gulp] 1.创建项目及安装gulp
  8. Problem 42
  9. Linux - 用户管理与文件权限
  10. ssm 数据库连接池配置