canvas绘制环形进度条


Posted in Javascript onFebruary 23, 2017

效果如下:

canvas绘制环形进度条

代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <meta name="viewport" content="maximum-scale=1.0,minimum-scale=1.0,user-scalable=0,width=device-width,initial-scale=1.0"/>
 <meta name="format-detection" content="telephone=no,email=no,date=no,address=no">
 <title>canvas绘制环形进度条</title>
 <style type="text/css">
 .chartbox{width: 100px;margin: 100px auto;}
 .myChart{width:100px;height: 100px;}
 </style>
</head>
<body>
 <div class="chartbox">
 <canvas class="myChart" id="myChart" width="100%" height="100%" data-total="100" data-curr="29.45"></canvas>
 </div>
 <script typet="text/javascript" src="http://libs.baidu.com/jquery/1.9.1/jquery.min.js"></script>
 <script type="text/javascript">
 (function($, window, undefined) { 
  $.fn.ringChart = function(options) {
  var defaults = { };
  var settings = $.extend({}, defaults, options);
  var canvas = $(this).get(0);
  var total = $(this).attr("data-total");
  var curr = $(this).attr("data-curr");
  var constrast = parseFloat(curr/total).toFixed(2); //比例
  var context = null;
  if ( !canvas.getContext) {
   return;
  }
  // 定义开始点的大小
  var startArc = Math.PI*1.5;
  // 根据占的比例画圆弧
  var endArc = (Math.PI * 2) * constrast;
  context = canvas.getContext("2d");
  // 圆心文字
  context.font="28px Arial";
   context.fillStyle = '#ff801a';
 context.textBaseline = 'middle';
   var text=(Number(curr/total)*100).toFixed(0)+"%";
   var tw=context.measureText(text).width;
 context.fillText(text,50-tw/2,50);
  // 绘制背景圆 
  context.save();
  context.beginPath();
  context.strokeStyle = "#e7e7e7";
  context.lineWidth = "4";
  context.arc(50, 50, 44, 0, Math.PI * 2, false);
  context.closePath();
  context.stroke();
  context.restore();
   // 若为百分零则不必再绘制比例圆
   if ( curr / total == 0) {
   return;
   }
  // 绘制比例圆 
  context.save();
  context.beginPath();
  context.strokeStyle = "#ff801a";
  context.lineWidth = "4";
   context.arc(50, 50, 44, startArc, (curr % total == 0 ? startArc : (endArc+startArc)), false);
  context.stroke();
  context.restore();
  }
 })($, window);
 $("#myChart").ringChart();
 </script>
</body>
</html>

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持三水点靠木!

Javascript 相关文章推荐
JS 学习笔记 防止发生命名冲突
Jul 30 Javascript
Extjs实现进度条的两种便捷方式
Sep 26 Javascript
js切换光标示例代码
Oct 10 Javascript
对new functionName()定义一个函数的理解
May 22 Javascript
json属性名为什么要双引号(个人猜测)
Jul 31 Javascript
JQuery实现的图文自动轮播效果插件
Jun 19 Javascript
jQuery ui实现动感的圆角渐变网站导航菜单效果代码
Aug 26 Javascript
JavaScript实现窗口抖动效果
Oct 19 Javascript
vue 运用mock数据的示例代码
Nov 07 Javascript
详解如何构建一个Angular6的第三方npm包
Sep 07 Javascript
vue-router为激活的路由设置样式操作
Jul 18 Javascript
vue本地构建热更新卡顿的问题“75 advanced module optimization”完美解决方案
Aug 05 Vue.js
微信小程序 两种为对象属性赋值的方式详解
Feb 23 #Javascript
js实现文字跑马灯效果
Feb 23 #Javascript
微信小程序 出现错误:{&quot;baseresponse&quot;:{&quot;errcode&quot;:-80002,&quot;errmsg&quot;:&quot;&quot;}}解决办法
Feb 23 #Javascript
JS正则表达式验证密码格式的集中情况总结
Feb 23 #Javascript
js模拟微博发布消息
Feb 23 #Javascript
Vuejs 用$emit与$on来进行兄弟组件之间的数据传输通信
Feb 23 #Javascript
微信小程序 开发之顶部导航栏实例代码
Feb 23 #Javascript
You might like
让PHP开发者事半功倍的十大技巧小结
2010/04/20 PHP
详解js异步文件加载器
2016/01/24 PHP
POST一个JSON格式的数据给Restful服务实例详解
2017/04/07 PHP
Laravel框架搜索分页功能示例
2019/02/01 PHP
php将字符串转换为数组实例讲解
2020/05/05 PHP
给ListBox添加双击事件示例代码
2013/12/02 Javascript
JQUERY实现网页右下角固定位置展开关闭特效的方法
2015/07/27 Javascript
JS模拟并美化的表单控件完整实例
2015/08/19 Javascript
Javascript HTML5 Canvas实现的一个画板
2020/04/12 Javascript
浅析函数声明和函数表达式——函数声明的声明提前
2016/05/03 Javascript
NodeJs——入门必看攻略
2016/06/27 NodeJs
AngularJS内建服务$location及其功能详解
2016/07/01 Javascript
详解js的六大数据类型
2016/12/27 Javascript
jQuery.cookie.js使用方法及相关参数解释
2017/03/06 Javascript
利用Three.js如何实现阴影效果实例代码
2017/09/26 Javascript
微信小程序将字符串生成二维码图片的操作方法
2018/07/17 Javascript
webpack打包nodejs项目的方法
2018/09/26 NodeJs
Vue实现移动端页面切换效果【推荐】
2018/11/13 Javascript
使用JS location实现搜索框历史记录功能
2019/12/23 Javascript
javascript实现蒙版与禁止页面滚动
2020/01/11 Javascript
9种python web 程序的部署方式小结
2014/06/30 Python
Python中请使用isinstance()判断变量类型
2014/08/25 Python
进一步了解Python中的XML 工具
2015/04/13 Python
浅析Python中的序列化存储的方法
2015/04/28 Python
python flask搭建web应用教程
2019/11/19 Python
利用纯css3实现的文字亮光特效的代码演示
2014/11/27 HTML / CSS
巴西最大的巴士票务门户:Quero Passagem
2020/11/21 全球购物
英国运动风奢侈品购物网站:Maison De Fashion
2020/08/28 全球购物
Linux面试题LINUX系统类
2015/11/25 面试题
《找不到快乐的波斯猫》教学反思
2014/02/24 职场文书
医院节能减排方案
2014/06/13 职场文书
新闻专业毕业生求职信
2014/08/08 职场文书
城市轨道交通工程职业生涯规划书范文
2014/09/16 职场文书
政府个人对照检查材料思想汇报
2014/10/08 职场文书
导游词之江西赣州
2019/10/15 职场文书
教你如何用cmd快速登录服务器
2022/06/10 Servers