全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

jquery插件canvaspercent.js实现百分比圆饼效果

在仪表盘的任务增多同时,列表页的百分比圆环或圆饼也随之增多,于是顺手在仪表盘的基础上,封装了一个小小的jquery插件(jq-canvaspercent.js),暂且版本1.0吧,到以后业务的变化在对其进行功能拓展;

暂时性用于页面中有多处百分比圆环的效果处理,还是不错的。

jq-canvaspercent.js代码比较简单,以下直接给出插件代码和几张截图:

/* 
 * canvaspercent 0.1 
 * Copyright:HeavyShell 
 * Date: 2016-06-27 
 * 利用canvas绘图实现百分比percent圆饼图 
 */ 
(function($){ 
 $.fn.drawCanvasPercent = function(options){ 
  //各种属性、参数 
  var defaults = { 
   type:1, //类型默认1,有[1,2,3] 
   dw:'rem', //判断是单位是rem还是px 
   cir_r:1, //圆饼的直径 
   cir_color:'#0e9cfa', //圆饼的占比颜色 
   cir_color_op:'#e0ebf4', //圆饼的占比颜色 
   line_w:0.16, //圆饼的线条宽度 
   fill_color:"#fff" //圆饼的中间区域填充颜色 
  } 
  var options = $.extend(defaults, options); 
  this.each(function(){ 
   //插件实现代码 
   var cur_obj=$(this); 
   if(options.dw=="rem"){ 
    var cur_cir_r=options.cir_r*(window.screen.width/10); 
    var cur_line_w=options.line_w*(window.screen.width/10); 
   }else{ 
    var cur_cir_r=options.cir_r; 
    var cur_line_w=options.line_w; 
   } 
   var cur_type=options.type; 
   var cur_cir_color=options.cir_color; 
   var cur_cir_color_op=options.cir_color_op; 
   var cur_fill_color=options.fill_color; 
   var percent=cur_obj.attr('data-percent'); 
   cur_obj.attr({'width':cur_cir_r,'height':cur_cir_r}); 
   cur_obj.css({'border-radius':"50%",'background':cur_cir_color_op}); 
   if(cur_obj[0].getContext){ 
 
    if(cur_type==2){ 
     //无填充颜色,且线条宽度等于直径 
     cur_line_w=cur_cir_r; 
    }else if(cur_type==3){ 
     //无填充颜色 
    }else{ 
     //有填充颜色 
     var ctx2 = cur_obj[0].getContext("2d"); 
     ctx2.fillStyle = cur_fill_color; 
     ctx2.arc(cur_cir_r/2, cur_cir_r/2, cur_cir_r/2-cur_line_w/2, 0, Math.PI*2, false); 
     ctx2.fill(); 
    } 
 
    var ctx = cur_obj[0].getContext("2d"); 
    ctx.beginPath(); 
    ctx.strokeStyle = cur_cir_color; 
    ctx.lineWidth=cur_line_w; 
    ctx.arc(cur_cir_r/2, cur_cir_r/2, cur_cir_r/2, 0, Math.PI*(percent/100)*360/180, false); 
    ctx.stroke(); 
   } 
  }); 
 }; 
})(jQuery);

调用方式:

$(function(){ 
  $('.perCanvas').drawCanvasPercent(); 
 }); 

也给出html页面代码吧:

<!doctype html> 
<html lang="en"> 
<head> 
 <meta charset="utf-8"> 
 <meta http-equiv="Pragma" content="no-cache"> 
 <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no"/> 
 <meta name="format-detection" content="telephone=no"/> 
 <meta name="apple-mobile-web-app-capable" content="yes"/> 
 <meta name="apple-mobile-web-app-status-bar-style" content="black"/> 
 <title>demo01</title> 
 <style type="text/css"> 
  div{margin:.1rem .2rem;background:#eee;padding:.3rem} 
  div span{display:block;float:right;margin:.22rem 2rem 0 0;font-size:.4rem;font-family:microsoft yahei} 
  div canvas{ 
   -webkit-transform: rotateZ(-270deg); 
   transform:rotateZ(-270deg); 
   -webkit-animation:ani01 1s ease 0s both; 
   animation:ani01 1s ease 0s both; 
  } 
 
  @-webkit-keyframes ani01 { 
   0%{ 
    -webkit-transform:scale(.5,.5) rotateZ(-270deg); 
    transform:scale(.5,.5) rotateZ(-270deg); 
   } 
   100%{ 
    -webkit-transform:scale(1,1) rotateZ(-90deg); 
    transform:scale(1,1) rotateZ(-90deg); 
   } 
  } 
  @keyframes ani01 { 
   0%{ 
    -webkit-transform:scale(.5,.5) rotateZ(-270deg); 
    transform:scale(.5,.5) rotateZ(-270deg); 
   } 
   100%{ 
    -webkit-transform:scale(1,1) rotateZ(-90deg); 
    transform:scale(1,1) rotateZ(-90deg); 
   } 
  } 
 </style> 
</head> 
<body> 
 
<div> 
 <canvas data-percent="80" class="perCanvas"> 
  您的浏览器不支持canvas标签。 
 </canvas> 
 <span>第一章:进度 80%</span> 
</div> 
<div> 
 <canvas data-percent="50" class="perCanvas"> 
  您的浏览器不支持canvas标签。 
 </canvas> 
 <span>第一章:进度 50%</span> 
</div> 
<div> 
 <canvas data-percent="75" class="perCanvas"> 
  您的浏览器不支持canvas标签。 
 </canvas> 
 <span>第一章:进度 75%</span> 
</div> 
<div> 
 <canvas data-percent="35" class="perCanvas"> 
  您的浏览器不支持canvas标签。 
 </canvas> 
 <span>第一章:进度 35%</span> 
</div> 
<div> 
 <canvas data-percent="95" class="perCanvas"> 
  您的浏览器不支持canvas标签。 
 </canvas> 
 <span>第一章:进度 95%</span> 
</div> 
<div> 
 <canvas data-percent="13" class="perCanvas"> 
  您的浏览器不支持canvas标签。 
 </canvas> 
 <span>第一章:进度 13%</span> 
</div> 
 
<script type="text/javascript" src="js/flexible.js"></script> 
<script type="text/javascript" src="js/jquery-1.7.2.min.js"></script> 
<script type="text/javascript" src="js/jq-canvaspercent.js"></script> 
<script type="text/javascript"> 
 $(function(){ 
  $('.perCanvas').drawCanvasPercent(); 
 }); 
</script> 
 
</body> 
</html> 

截图如下:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# jquery  # canvaspercent.js  # 百分比  # js canvas仿支付宝芝麻信用分仪表盘  # ECharts仪表盘实例代码(附源码下载)  # Javascript highcharts 饼图显示数量和百分比实例代码  # JavaScript根据数据生成百分比图和柱状图的实例代码  # 使用javascript获取flash加载的百分比的实现代码  # javascript 计算两个整数的百分比值  # javascript下正则匹配百分比的代码  # js canvas实现适用于移动端的百分比仪表盘dashboard  # 您的  # 不支持  # 基础上  # 中有  # 对其  # 几张  # 装了  # 一个小小  # 多处  # 大家多多  # cur_line_w  # screen  # width  # cur_type  # cur_fill_color  # attr  # cur_cir_color  # cur_cir_color_op  # fill_color  # line_w 


相关文章: 惠州网站建设制作推广,惠州市华视达文化传媒有限公司怎么样?  专业制作网站的公司哪家好,建立一个公司网站的费用.有哪些部分,分别要多少钱?  企业微网站怎么做,公司网站和公众号有什么区别?  哪家制作企业网站好,开办像阿里巴巴那样的网络公司和网站要怎么做?  音乐网站服务器如何优化API响应速度?  如何自定义建站之星网站的导航菜单样式?  利用JavaScript实现拖拽改变元素大小  天河区网站制作公司,广州天河区如何办理身份证?需要什么资料有预约的网站吗?  如何通过VPS搭建网站快速盈利?  建站之星安装失败:服务器环境不兼容?  建站168自助建站系统:快速模板定制与SEO优化指南  完全自定义免费建站平台:主题模板在线生成一站式服务  实例解析Array和String方法  如何用搬瓦工VPS快速搭建个人网站?  头像制作网站在线制作软件,dw网页背景图像怎么设置?  枣阳网站制作,阳新火车站打的到仙岛湖多少钱?  如何快速搭建二级域名独立网站?  番禺网站制作公司哪家值得合作,番禺图书馆新馆开放了吗?  网站制作与设计教程,如何制作一个企业网站,建设网站的基本步骤有哪些?  如何在Mac上搭建Golang开发环境_使用Homebrew安装和管理Go版本  ,购物网站怎么盈利呢?  如何通过可视化优化提升建站效果?  外贸公司网站制作哪家好,maersk船公司官网?  免费制作小说封面的网站有哪些,怎么接网站批量的封面单?  免费公司网站制作软件,如何申请免费主页空间做自己的网站?  建站与域名管理如何高效结合?  导航网站建站方案与优化指南:一站式高效搭建技巧解析  高防服务器:AI智能防御DDoS攻击与数据安全保障  Python多线程使用规范_线程安全解析【教程】  建站主机选哪种环境更利于SEO优化?  建站之星2.7模板:企业网站建设与h5定制设计专题  公众号网站制作网页,微信公众号怎么制作?  宁波自助建站系统如何快速打造专业企业网站?  网站设计制作书签怎么做,怎样将网页添加到书签/主页书签/桌面?  专业的网站制作设计是什么,如何制作一个企业网站,建设网站的基本步骤有哪些?  建站之星代理如何获取技术支持?  如何零成本快速生成个人自助网站?  建站之星在线版空间:自助建站+智能模板一键生成方案  官网自助建站平台指南:在线制作、快速建站与模板选择全解析  如何用PHP快速搭建CMS系统?  网站制作培训多少钱一个月,网站优化seo培训课程有哪些?  个人摄影网站制作流程,摄影爱好者都去什么网站?  如何通过万网虚拟主机快速搭建网站?  c# F# 的 MailboxProcessor 和 C# 的 Actor 模型  建站之星如何优化SEO以实现高效排名?  广东企业建站网站优化与SEO营销核心策略指南  如何在七牛云存储上搭建网站并设置自定义域名?  C++中的Pimpl idiom是什么,有什么好处?(隐藏实现)  如何快速搭建高效WAP手机网站吸引移动用户?  临沂网站制作公司有哪些,临沂第四中学官网? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。