本文为大家分享了canvas实现适用于移动端的百分比仪表盘,供大家参考,具体内容如下

由于最近工作中,经常会遇到一些动态百分比的仪表盘,一开始都是用图片样式方式实现;
但是随着越来越多的项目,决定用canvas绘制一个简易的仪表盘,便于以后项目中直接使用;
现版本只是书写为方法形式,也许之后会有时间对其优化为插件形式。
简简单单而已,以下直接给出代码和执行过程中的三张截图:
<!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>canvas绘制简易百分比仪表盘dashboard(建议最好用于移动端)</title>
<style type="text/css">
div{margin:1rem;background:#eee;padding:.3rem; position:relative }
div canvas{background:#cacaca;
-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 id="myCanvas1" data-percent="80">
您的浏览器不支持canvas标签。
</canvas>
<span style="display:block;position:absolute;top:.94rem;left:.3rem;width:2rem;text-align:center;font-size:.5rem;font-family:microsoft Yahei" id="dushu" >0</span>
</div>
<script type="text/javascript" src="../js/flexible.js"></script>
<script type="text/javascript">
var pper=0;
var pper_interal;
var dushu=document.getElementById('dushu');
var aaa=drawCanvanPercent('myCanvas1','rem',2,'#0e9cfa',0.2,'#fff');
function drawCanvanPercent(ele_id,dw,cir_r,cir_color,line_w,fill_color){
if(dw=="rem"){
cir_r=cir_r*(window.screen.width/10);
line_w=line_w*(window.screen.width/10);
}
var canvas = document.getElementById(ele_id);
var circle = {
r : cir_r/2, //圆的半径
per : canvas.getAttribute('data-percent'), //百分比分子
color : cir_color, //圆的颜色
lineWidth : line_w //圆的颜色
};
canvas.width=canvas.height=circle.r*2;
canvas.style.borderRadius="50%";
if(canvas.getContext){
var ctx2 = canvas.getContext("2d");
ctx2.fillStyle = fill_color;
ctx2.arc(circle.r, circle.r, circle.r-circle.lineWidth/2, 0, Math.PI*2, false);
ctx2.fill();
var ctx = canvas.getContext("2d");
pper_interal= setInterval(function () {
drawMove(ctx,circle);
}, 10);
}
}
function drawMove(ctx,circle){
if(pper>=circle.per){
pper=circle.per;
clearTimeout(pper_interal);
}else{
pper++;
}
dushu.innerText=pper+'%';
ctx.beginPath();
ctx.strokeStyle = circle.color;
ctx.lineWidth=circle.lineWidth;
ctx.arc(circle.r, circle.r, circle.r, 0, Math.PI*(pper/100)*360/180, false);
ctx.stroke();
}
</script>
</body>
</html>
截图如下:
建议:不要因为简单而不去动手,多动手多思考,你会进步的。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# js
# canvas
# 移动端
# 仪表盘
# dashboard
# D3.js实现简洁实用的动态仪表盘的示例
# js canvas仿支付宝芝麻信用分仪表盘
# ECharts仪表盘实例代码(附源码下载)
# jquery插件实现仪表盘
# 都是
# 您的
# 你会
# 适用于
# 不去
# 对其
# 不支持
# 大家分享
# 经常会
# 具体内容
# 大家多多
# 三张
# 过程中
# 多动
# style
# status
# bar
# black
# type
# text
相关文章:
如何在七牛云存储上搭建网站并设置自定义域名?
实现虚拟支付需哪些建站技术支撑?
建站之星五站合一营销型网站搭建攻略,流量入口全覆盖优化指南
宠物网站制作html代码,有没有专门介绍宠物如何养的网站啊?
已有域名和空间,如何快速搭建网站?
英语简历制作免费网站推荐,如何将简历翻译成英文?
代刷网站制作软件,别人代刷火车票靠谱吗?
建站之星如何优化SEO以实现高效排名?
网站制作员失业,怎样查看自己网站的注册者?
Swift中swift中的switch 语句
高防服务器:AI智能防御DDoS攻击与数据安全保障
相册网站制作软件,图片上的网址怎么复制?
重庆市网站制作公司,重庆招聘网站哪个好?
如何通过NAT技术实现内网高效建站?
网站制作怎么样才能赚钱,用自己的电脑做服务器架设网站有什么利弊,能赚钱吗?
网站制作和推广的区别,想自己建立一个网站做推广,有什么快捷方法马上做好一个网站?
建站之星后台密码遗忘?如何快速找回?
邀请函制作网站有哪些,有没有做年会邀请函的网站啊?在线制作,模板很多的那种?
如何通过VPS搭建网站快速盈利?
宝塔建站后网页无法访问如何解决?
建站主机如何选?性能与价格怎样平衡?
制作网站的软件下载免费,今日头条开宝箱老是需要下载怎么回事?
网页设计与网站制作内容,怎样注册网站?
盐城做公司网站,江苏电子版退休证办理流程?
学校为何禁止电信移动建设网站?
如何在腾讯云服务器上快速搭建个人网站?
如何通过网站建站时间优化SEO与用户体验?
网站企业制作流程,用什么语言做企业网站比较好?
如何通过cPanel快速搭建网站?
宝塔建站教程:一键部署配置流程与SEO优化实战指南
,有什么在线背英语单词效率比较高的网站?
网站网页制作专业公司,怎样制作自己的网页?
网站app免费制作软件,能免费看各大网站视频的手机app?
怎么将XML数据可视化 D3.js加载XML
香港服务器网站测试全流程:性能评估、SEO加载与移动适配优化
云南网站制作公司有哪些,云南最好的招聘网站是哪个?
如何用景安虚拟主机手机版绑定域名建站?
建站之星代理费用多少?最新价格详情介绍
制作网站的模板软件,网站怎么建设?
如何通过主机屋免费建站教程十分钟搭建网站?
php8.4新语法match怎么用_php8.4match表达式替代switch【方法】
建站之星价格显示格式升级,你的预算足够吗?
如何通过可视化优化提升建站效果?
自助网站制作软件,个人如何自助建网站?
整蛊网站制作软件,手机不停的收到各种网站的验证码短信,是手机病毒还是人为恶搞?有这种手机病毒吗?
制作ppt免费网站有哪些,有哪些比较好的ppt模板下载网站?
建站之星代理如何获取技术支持?
营销式网站制作方案,销售哪个网站招聘效果最好?
建站org新手必看:2024最新搭建流程与模板选择技巧
如何通过VPS建站实现广告与增值服务盈利?
*请认真填写需求信息,我们会在24小时内与您取得联系。