当前位置: 首页 > news >正文

html+jquery 环形渐变进度条

特殊点,环形进度条,随着进度变化进度条颜色,由绿色变为黄色,最后到红色。

主要适用:大屏显示。

html
 

<canvas id="canvas" width="160" height="170">cpu</canvas>

js 调用

定位到所属div位置
const canvas = $('.div').find('#canvas')[0];updateProgress(canvas, 55, "CPU");

方法

 // 更新进度条的函数function updateProgress(canvas, percentage, val) {const ctx1 = canvas.getContext("2d");// 设置环形进度条的参数var centerX = canvas.width / 2;var centerY = canvas.height / 2;var radius = 50; //环形半径var startAngle = -Math.PI / 2; // 从12点钟位置开始var currentAngle = 0; // 当前角度var endAngle = currentAngle; // 结束角度var counterClockwise = false; // 顺时针endAngle = startAngle + (percentage / 100) * (Math.PI * 2);ctx1.clearRect(0, 0, canvas.width, canvas.height);// 绘制底色ctx1.beginPath();ctx1.arc(centerX, centerY, radius, 0, Math.PI * 2, false);ctx1.lineWidth = 10;ctx1.strokeStyle = "#ccc";ctx1.stroke();绘制进度//ctx1.beginPath();//ctx1.arc(centerX, centerY, radius, startAngle, endAngle, counterClockwise);//ctx1.lineWidth = 10;//ctx1.strokeStyle = "#4caf50"; // 进度条颜色//ctx1.stroke();// 绘制进度ctx1.beginPath();ctx1.arc(centerX, centerY, radius, startAngle, endAngle, counterClockwise);if (percentage==100) {ctx1.strokeStyle = '#FF0000';} else if (percentage > 96) {var g = ctx1.createLinearGradient(0, 200, 0, 0);  //创建渐变对象  渐变开始点和渐变结束点g.addColorStop(0, '#FFD700'); //添加颜色点   g.addColorStop(1, '#FF0000'); //添加颜色点     ctx1.strokeStyle = g;} else if (percentage > 94) {var g = ctx1.createLinearGradient(0, 180, 0, 0);  //创建渐变对象  渐变开始点和渐变结束点g.addColorStop(0, '#FFD700'); //添加颜色点   g.addColorStop(1, '#FF0000'); //添加颜色点     ctx1.strokeStyle = g;} else if (percentage > 91) {var g = ctx1.createLinearGradient(0, 150, 0, 0);  //创建渐变对象  渐变开始点和渐变结束点g.addColorStop(0, '#FFD700'); //添加颜色点   g.addColorStop(1, '#FF0000'); //添加颜色点     ctx1.strokeStyle = g;} else if (percentage > 89) {var g = ctx1.createLinearGradient(0, 120, 0, 0);  //创建渐变对象  渐变开始点和渐变结束点g.addColorStop(0, '#FFD700'); //添加颜色点   g.addColorStop(1, '#FF0000'); //添加颜色点     ctx1.strokeStyle = g;} else if (percentage > 86) {var g = ctx1.createLinearGradient(0, 100, 0, 0);  //创建渐变对象  渐变开始点和渐变结束点g.addColorStop(0, '#FFD700'); //添加颜色点   g.addColorStop(1, '#FF0000'); //添加颜色点     ctx1.strokeStyle = g;}  else if (percentage > 83) {var g = ctx1.createLinearGradient(0, 80, 0, 0);  //创建渐变对象  渐变开始点和渐变结束点g.addColorStop(0, '#FFD700'); //添加颜色点   g.addColorStop(1, '#FF0000'); //添加颜色点     ctx1.strokeStyle = g;} else if (percentage > 80) {var g = ctx1.createLinearGradient(0, 60, 0, 0);  //创建渐变对象  渐变开始点和渐变结束点g.addColorStop(0, '#FFD700'); //添加颜色点   g.addColorStop(1, '#FF0000'); //添加颜色点     ctx1.strokeStyle = g;} else if (percentage > 79) {var g = ctx1.createLinearGradient(0, 50, 0, 0);  //创建渐变对象  渐变开始点和渐变结束点g.addColorStop(0, '#FFD700'); //添加颜色点   g.addColorStop(1, '#FF0000'); //添加颜色点     ctx1.strokeStyle = g;} else if (percentage > 76) {var g = ctx1.createLinearGradient(0, 40, 0, 0);  //创建渐变对象  渐变开始点和渐变结束点g.addColorStop(0, '#FFD700'); //添加颜色点   g.addColorStop(1, '#FF0000'); //添加颜色点     ctx1.strokeStyle = g;} else if (percentage > 73) {var g = ctx1.createLinearGradient(0, 30, 0, 0);  //创建渐变对象  渐变开始点和渐变结束点g.addColorStop(0, '#FFD700'); //添加颜色点   g.addColorStop(1, '#FF0000'); //添加颜色点     ctx1.strokeStyle = g;} else if (percentage > 70) {var g = ctx1.createLinearGradient(0, 20, 0, 0);  //创建渐变对象  渐变开始点和渐变结束点g.addColorStop(0, '#FFD700'); //添加颜色点   g.addColorStop(1, '#FF0000'); //添加颜色点     ctx1.strokeStyle = g;} else if (percentage > 65) {ctx1.strokeStyle = '#FFD700';} else if (percentage > 60) {var g = ctx1.createLinearGradient(0, 30, 0, 0);  //创建渐变对象  渐变开始点和渐变结束点g.addColorStop(0, '#FFD700'); //添加颜色点               g.addColorStop(1, '#00FF00'); //添加颜色点     ctx1.strokeStyle = g;} else if (percentage > 55) {var g = ctx1.createLinearGradient(0, 40, 0, 0);  //创建渐变对象  渐变开始点和渐变结束点g.addColorStop(0, '#FFD700'); //添加颜色点               g.addColorStop(1, '#00FF00'); //添加颜色点     ctx1.strokeStyle = g;}else if (percentage > 50) {var g = ctx1.createLinearGradient(0, 0, 0, 60);  //创建渐变对象  渐变开始点和渐变结束点g.addColorStop(0, '#00FF00'); //添加颜色点   //g.addColorStop(0.5, '#FFD700'); //添加颜色点g.addColorStop(1, '#FFD700'); //添加颜色点     ctx1.strokeStyle = g;} else if (percentage > 45) {var g = ctx1.createLinearGradient(0, 0, 0, 60);  //创建渐变对象  渐变开始点和渐变结束点g.addColorStop(0, '#00FF00'); //添加颜色点   //g.addColorStop(0.5, '#FFD700'); //添加颜色点g.addColorStop(1, '#FFD700'); //添加颜色点     ctx1.strokeStyle = g;} else if (percentage > 40) {var g = ctx1.createLinearGradient(0, 0, 0, 70);  //创建渐变对象  渐变开始点和渐变结束点g.addColorStop(0, '#00FF00'); //添加颜色点   //g.addColorStop(0.5, '#FFD700'); //添加颜色点g.addColorStop(1, '#FFD700'); //添加颜色点     ctx1.strokeStyle = g;} else if (percentage > 30) {var g = ctx1.createLinearGradient(0, 0, 0, 90);  //创建渐变对象  渐变开始点和渐变结束点g.addColorStop(0, '#00FF00'); //添加颜色点   //g.addColorStop(0.5, '#FFD700'); //添加颜色点g.addColorStop(1, '#FFD700'); //添加颜色点     ctx1.strokeStyle = g;} else if (percentage > 20) {var g = ctx1.createLinearGradient(0, 0, 0, 90);  //创建渐变对象  渐变开始点和渐变结束点g.addColorStop(0, '#00FF00'); //添加颜色点   //g.addColorStop(0.5, '#FFD700'); //添加颜色点g.addColorStop(1, '#FFD700'); //添加颜色点     ctx1.strokeStyle = g;}  else if (percentage > 10) {var g = ctx1.createLinearGradient(0, 180, 0, 0);  //创建渐变对象  渐变开始点和渐变结束点g.addColorStop(0, '#FFD700'); //添加颜色点         g.addColorStop(1, '#00FF00'); //添加颜色点     ctx1.strokeStyle = g;}  else {ctx1.strokeStyle = '#00FF00';}ctx1.stroke();ctx1.closePath();// 写上百分比ctx1.textAlign = "right";ctx1.font = "14px sans-serif";ctx1.fillStyle = "#FFFFF0";if (true) {}ctx1.fillText(val + ":" + percentage + "%", 140, 140);}

使用定时器setInterval循环获取实时数据。

最后效果

大体符合需求,更自然效果仍需进一步调试。

http://www.xdnf.cn/news/796699.html

相关文章:

  • xp sp2 升级到sp3
  • $(window.parent.document) 获取 不到信息_对生活有帮助的便民信息,应该这样搜
  • 快速掌握伽马函数求解
  • Activity之间的跳转的两种实现方法
  • 启动应用程序程序PSCRIPT5.DLL找不到问题解决
  • 测试是ufs3.0的软件,1000个App极限折腾UFS 3.0手机
  • Oracle 9i 下载地址|Oracle 9i 下载|Oracle 9i 官网下载地址
  • 让测试效率起飞的8款浏览器兼容性测试工具,你get了吗?
  • 前端框架 EasyUI (1)熟悉一下EasyUI
  • Winlogon、LSASS、Userinit
  • 运维系列AI系列Lenovo-G双系统系列(亲测有效):Linux版使用教程(花生壳)---官方原版
  • 虚拟机安装与配置win7
  • VC宏定义 及常用宏定义说明
  • 大二《web课程设计》网页制作HTML个人主题青春网站(带psd)
  • (附源码)SSM音乐网站的设计与实现 毕业设计97245
  • 【小沐学NLP】Python实现聊天机器人(微软小冰)
  • 图像处理基础
  • w7怎么查看电脑配置_怎么查看电脑配置?三个方法学起来
  • html5qq空间代码作业,免费QQ空间背景代码大全(高手整理)
  • Android 11 SystemUI(状态/导航栏)-状态栏下拉时图标的隐藏与通知面板的半透黑色背景
  • 环境对象以及回调函数
  • java swing 自定义标题栏,缩放窗口,阴影窗口
  • Android Matrix详解
  • 继电器模块详解
  • LED显示屏的秘密:揭秘模拟信号与模拟电路
  • java开发环境sdk_JAVA开发环境配置
  • 冠达管理:成交量突然放大意味着什么?
  • 框计算
  • ASP入门教程 1小时ASP入门,非常简单
  • Photoshop7.0 简体中文迷你版