<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>半环形进度条</title>
</head>
<style></style><body><canvas id="canvas" width="150" height="150"><p>抱歉,您的浏览器不支持canvas</p></canvas><script>toCanvas('canvas','red',30);/***  生成环形进度条*/function toCanvas(id, color, progress) {//canvas进度条var canvas = document.getElementById(id),ctx = canvas.getContext("2d"),percent = progress, //最终百分比circleX = canvas.width / 2, //中心x坐标circleY = canvas.height / 2, //中心y坐标radius = 60, //圆环半径cradius = 75, // canvas半径lineWidth = 6, //圆形线条的宽度fontSize = 20; //字体大小//两端圆点function smallcircle1(cx, cy, r) {ctx.beginPath();//ctx.moveTo(cx + r, cy);ctx.lineWidth = 1;ctx.fillStyle = '#06a8f3';ctx.arc(cx, cy, r, 0, Math.PI * 2);ctx.fill();}function smallcircle2(cx, cy, r) {ctx.beginPath();//ctx.moveTo(cx + r, cy);ctx.lineWidth = 1;ctx.fillStyle = '#fff';ctx.arc(cx, cy, r, 0, Math.PI * 2);ctx.fill();}//画圆function circle(cx, cy, r) {ctx.beginPath();//ctx.moveTo(cx + r, cy);ctx.lineWidth = lineWidth;ctx.strokeStyle = '#eee';ctx.arc(cx, cy, r, Math.PI * 2 / 3, Math.PI * 1 / 3);ctx.stroke();}//画弧线function sector(cx, cy, r, startAngle, endAngle, anti) {ctx.beginPath();//ctx.moveTo(cx, cy + r); // 从圆形底部开始画ctx.lineWidth = lineWidth;// 渐变色 - 可自定义// var linGrad = ctx.createLinearGradient(//     circleX-radius-lineWidth, circleY, circleX+radius+lineWidth, circleY// );// linGrad.addColorStop(0.0, '#06a8f3');// //linGrad.addColorStop(0.5, '#9bc4eb');// linGrad.addColorStop(1.0, '#00f8bb');// ctx.strokeStyle = linGrad;// 进度条颜色ctx.strokeStyle = color;//圆弧两端的样式ctx.lineCap = 'round';//圆弧ctx.arc(cx, cy, r,(Math.PI * 2 / 3),(Math.PI * 2 / 3) + endAngle / 100 * (Math.PI * 5 / 3),false);ctx.stroke();}//刷新function loading() {if (process >= percent) {clearInterval(circleLoading);}//清除canvas内容ctx.clearRect(0, 0, circleX * 2, circleY * 2);//中间的字ctx.font = fontSize + 'px April';ctx.textAlign = 'center';ctx.textBaseline = 'middle';ctx.fillStyle = '#999';ctx.fillText(parseFloat(process).toFixed(0) + '%', circleX, circleY);//圆形circle(circleX, circleY, radius);//圆弧sector(circleX, circleY, radius, Math.PI * 2 / 3, process);//两端圆点smallcircle1(cradius + Math.cos(2 * Math.PI / 360 * 120) * radius, cradius + Math.sin(2 * Math.PI / 360 * 120) *radius, 0);smallcircle2(cradius + Math.cos(2 * Math.PI / 360 * (120 + process * 3)) * radius, cradius + Math.sin(2 * Math.PI /
360* (120 + process * 3)) * radius, 2);//控制结束时动画的速度if (process / percent > 0.90) {process += 0.30;} else if (process / percent > 0.80) {process += 0.55;} else if (process / percent > 0.70) {process += 0.75;} else {process += 1.0;}}var process = 0.0; //进度var circleLoading = window.setInterval(function() {loading();}, 20);}</script>
</body></html>

半圆形进度条(html)相关推荐

  1. 进度条上的小圆点怎么做_Android自定义带圆点的半圆形进度条

    本文实例为大家分享了Android自定义带圆点的半圆形进度条,供大家参考,具体内容如下 仅限用于半圆形,如须要带圆点的圆形进度条,圆点会出现错位现象,此代码仅供,带圆点的圆形进度条有空研究一下!图片效 ...

  2. android 锥形进度条,canvas锥形渐变进度条

    从一个渐变圆角进度条浅出画一个圆 开始 这一切需要从一个(简单)的需求开始,在最开始对设计第一眼看到这张图的时候,感觉挺简单的嘛,直接用echarts饼图模拟出来一个就好了 echarts 然后上ec ...

  3. android 锥形进度条,canvas锥形进度条怎么渐变

    从一个渐变圆角进度条浅出画一个圆 开始 这一切需要从一个(简单)的需求开始,在最开始对设计第一眼看到这张图的时候,感觉挺简单的嘛,直接用echarts饼图模拟出来一个就好了 echarts 然后上ec ...

  4. web app升级—带进度条的App自动更新

    带进度条的App自动更新,效果如下图所示:   技术:vue.vant-ui.5+ 封装独立组件AppProgress.vue: <template><div><van- ...

  5. 一个KVO 实现WKWebView加载进度条的例子 (注意最后移除观察者)

    // // OpenWebViewController.m // Treasure // // Created by 蓝蓝色信子 on 16/7/29. // Copyright © 2016年 GY ...

  6. html资源文件记载进度条,用进度条显示文件读取进度《 HTML5:文件 API 》

    在这个文档里,我添加了一个 标签 .. 上面定义了一个 ID 是 eventstatus - 我们可以把进度条放在这个容器里面 - 先找到用来显示进度条的容器 - // 找到显示事件状态的容器 var ...

  7. android炫酷的自定义view,Android自定义View实现炫酷进度条

    本文实例为大家分享了Android实现炫酷进度条的具体代码,供大家参考,具体内容如下 下面我们来实现如下效果: 第一步:创建attrs文件夹,自定义属性: 第二步:自定义View: /** * Cre ...

  8. python特效进度条_六种酷炫Python运行进度条

    作者 | 行哥 来源 | 一行数据 之前行哥给大家推荐过一个windows神器,里面有个小功能是人生进度条,可以看到2020年的进度只剩下一半,那么你的代码进度还剩多少呢? 这不,行哥本文介绍了目前6 ...

  9. html 可调节进度条控件,jQuery简单实用的轻量级进度条插件

    jQMeter是一款简单实用的轻量级进度条jQuery插件,它可以显示为水平或垂直进度条,进度条加载时带有动画特效,你只需要简单的传入一些参数到jQMeter对象的构造函数中就可以完成你想要的进度条效 ...

最新文章

  1. java基本类型转换,随记
  2. u盘驱动 内核代码阅读 2.6.11.12版本
  3. MyEcplise中SpringBoot怎样定制启动banner?
  4. 它是光荣的象征, 得到它一定没有Bug!
  5. 【视觉项目】【day3】8.22号实验记录(利用canny检测之后的来进行模板匹配)
  6. 转载 二叉树的创建、遍历、深度、叶子节点数
  7. [python]python学习笔记(三)——编译
  8. CodeFirst的EF6迁移和时间戳错误
  9. C++编程视频教程《VC知识库大讲堂C++教程》
  10. 游戏开发如此简单?我直接创建了一个游戏场景【python 游戏实战 02】
  11. STM32F205时钟配置
  12. JavaScript知识整理(一)——W3school
  13. 【思维导图】旅行物品清单
  14. Vue项目中直接调用打印机打印网页的某一区域的方法
  15. 河南省第三届金盾信安杯网络安全大赛部分wp
  16. JAVA编写程序实现,由键盘输入两个整数,输出其中较大的数。
  17. linux trace 进程 文件路径,linux panic 问题定位
  18. linux rescue 黑屏,linux援救模式:linux rescue使用详细图解
  19. 埃森哲2021财年第三季度全球营收达133亿美元;富士胶片创新解决方案新成员亮相CHINA PRINT 2021 | 全球TMT...
  20. 本周杭州程序员工资大调查,高于深圳和广州

热门文章

  1. FPGA实现的SPI协议(一)----SPI驱动
  2. cmd查看php服务器,如何在windows中查看php版本
  3. 与复旦大学《数学分析》编者商榷
  4. 解决chrome浏览器手机调试模式下鼠标指针消失(量化范围设置无效情况)
  5. Flexpoint: An Adaptive Numerical Format for Efficient Training of Deep Neural Networks:弯曲点:一种有效训练深度神
  6. 有一个会做饭的女友是一种怎样的体验?
  7. 201912月灵感记录
  8. 零基础学习C语言必读书籍
  9. 如何在EDUIS中导出ETL字幕模板_Arctime Pro字幕软件 2.0 简单强大高效的跨平台字幕制作软件...
  10. Zabbix监控配置详解