CSS-SVG-环形进度条

线上代码地址
<div class="circular-progress-bar"><svg><circle class="circle-bg" /><circle class="circle-progress" style="stroke-dasharray: calc(2 * 3.1415 * var(--r) * (var(--percent) / 100)), 1000" /></svg>
</div><br />
<br />
<p><label>进度</label><input type="range" min="0" max="100" value="0" oninput="changeConfig(this, '--percent')" />
</p>
<p><label>环形大小</label><input type="range" min="100" max="400" value="200" oninput="changeConfig(this, '--size', 'px')" />
</p>
<p><label>进度条宽度</label><input type="range" min="1" max="50" value="10" oninput="changeConfig(this, '--progress-border', 'px')" />
</p>
<p><label>进度条颜色</label><input type="color" value="#ff0000" oninput="changeConfig(this, '--progress-color')" />
</p>
<p><label>背景色</label><input type="color" value="#cccccc" oninput="changeConfig(this, '--bg-color')" /><button onclick="changeDemo({ value: 'transparent' }, '--bg-color')">透明</button>
</p>
.circular-progress-bar {--size: 200px; /* 环形大小 */--percent: 0; /* 进度 */--progress-border: 10px; /* 进度条宽度:要带单位,不然计算半径的时候有问题,要和 --size 统一 */--progress-color: red; /* 进度条颜色 */--bg-color: green; /* 不是进度条的颜色 */position: relative;width: var(--size);height: var(--size);border-radius: 50%;
}
.circular-progress-bar::before {position: absolute;top: 50%;left: 50%;transform: translate(-50%, -50%);counter-reset: progress var(--percent);/* 用于重置计数器的初始值,并且命名为progress */content: counter(progress) "%";white-space: nowrap;font-size: 18px;
}.circular-progress-bar svg {width: 100%;height: 100%;
}
.circular-progress-bar svg circle {--r: calc((var(--size) - var(--progress-border)) / 2);fill: none;stroke-width: var(--progress-border);stroke-linecap: round;stroke: var(--progress-color);transition: stroke-dasharray 0.3 linear;cx: calc(var(--size) / 2);cy: calc(var(--size) / 2);r: var(--r);
}
.circular-progress-bar svg .circle-bg {stroke: var(--bg-color);
}.circular-progress-bar svg .circle-progress {opacity: var(--percent); /* 进度:0 的时候不需要显示 */
}
const progressEl = document.querySelector('.circular-progress-bar');function changeConfig({ value }, property, unit = '') {progressEl.style.setProperty(property, value + unit);
}
相关文章:
CSS-SVG-环形进度条
线上代码地址 <div class"circular-progress-bar"><svg><circle class"circle-bg" /><circle class"circle-progress" style"stroke-dasharray: calc(2 * 3.1415 * var(--r) * (var(--percent) / 100)), 1000" …...
英语中修饰头发的形容词顺序是怎么样的(加补充)
一、英语描述发型 :漂亮长短形状颜色头发。 例如她有一头美丽的黑色的直发。She has beautiful long straight black hair.二、多个形容词修饰同一名词时的顺序是固定的,其顺序为:①冠词、指示代词、不定代词、物主代词②序数词基数词③一般性描绘形容词…...
python的WebSocket编程详解,案例群聊系统实现
1.websocket相关 1.1为什么要用websocket 如果有需求要实现服务端向客户端主动推送消息时(比如聊天室,群聊室)有哪几种方案 轮训:让浏览器每隔两秒发送一次请求,缺点:有延时,请求太多网站压力…...
flutter学习-day22-使用GestureDetector识别手势事件
文章目录 1. 介绍2. 使用2-1. 单击双击和长按2-2. 拖动和滑动2-3. 缩放 3. 注意点 1. 介绍 在 flutter 中,GestureDetector 是手势识别的组件,可以识别点击、双击、长按、拖动、缩放等手势事件,并且可以与子组件进行交互,构造函数…...
uni-app tabbar组件
锋哥原创的uni-app视频教程: 2023版uniapp从入门到上天视频教程(Java后端无废话版),火爆更新中..._哔哩哔哩_bilibili2023版uniapp从入门到上天视频教程(Java后端无废话版),火爆更新中...共计23条视频,包括:第1讲 uni…...
【Midjourney】Midjourney根据prompt提示词生成人物图片
目录 🍇🍇Midjourney是什么? 🍉🍉Midjourney怎么用? 🔔🔔Midjourney提示词格式 Midjourney生成任务示例 例1——航空客舱与乘客 prompt prompt翻译 生成效果 大图展示 细节大…...
Oracle 拼接字符串
语法 使用||拼接如果内容中有单引号,则可在该单引号前面再加一个单引号进行转义 例子 比如有一个业务是根据需要生成多条插入语句 select insert into des_account_des_role(des_account_id, roles_id) values( || id || , || (select id from des_role where wo…...
探究公有云中的巨人:深入分析大数据产品的架构设计
目录 一、服务器分类 二、公有云基础和产品 网络 vpc专有网络 弹性公网IP(Elastic IP)...
亚马逊云科技 re:Invent 2023 产品体验:亚马逊云科技产品应用实践 王炸产品 Amazon Q,你的 AI 助手
意料之中 2023年9月25日,亚马逊宣布与 Anthropic 正式展开战略合作,结合双方在更安全的生成式 AI 领域的先进技术和专业知识,加速 Anthropic 未来基础模型的开发,并将其广泛提供给亚马逊云科技的客户使用。 亚马逊云科技开发者社…...
并发编程大杀器,京东多线程编排工具asyncTool
一、简介 并发编程大杀器,京东多线程编排工具asyncTool,可以解决任意的多线程并行、串行、阻塞、依赖、回调的并行框架,可以任意组合各线程的执行顺序,带全链路执行结果回调。多线程编排一站式解决方案。 二、特点 多线程编排&am…...
【开源项目】智慧交通~超经典开源项目实景三维数字孪生高速
数字孪生高速运营管理平台,以提升高速公路管理水平和方便出行为主要目标,充分利用云计算、AI、大数据等,实现对高速公路控制、指挥、运营的智能化。飞渡科技以实景三维数据为基础,基于大数据、高分遥感、数据分析以及数据融合等前…...
udp多播/组播那些事
多播与组播 多播(multicast)和组播(groupcast)是相同的概念,用于描述在网络中一对多的通信方式。在网络通信中,单播(unicast)是一对一的通信方式,广播(broad…...
C++ Qt开发:SqlRelationalTable关联表组件
Qt 是一个跨平台C图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍SqlRelationalTable关联表组件的常用方法及灵…...
【LeetCode】修炼之路-0001-Two Sum(两数之和)【python】【简单】
前言 计算机科学作为一门实践性极强的学科,代码能力的培养尤为重要。当前网络上有非常多优秀的前辈分享了LeetCode的最佳算法题解,这对于我们这些初学者来说提供了莫大的帮助,但对于我这种缺乏编程直觉的学习者而言,这往往难以消化吸收。(为什么别人就能想出这么优雅…...
秋招复习篇之代码规范
目录 前言 1、变量命名 2、代码空格 1)操作符左右一定有空格, 2)分隔符(, 和;)前一位没有空格,后一位保持空格,例如: 3)大括号和函数保持同一行,并有一个空格…...
Docker:登录私有仓库\退出私有仓库
一、登录仓库 docker login : 登录到一个Docker镜像仓库,如果未指定镜像仓库地址,默认为官方仓库 Docker Hub 语法: docker login [OPTIONS] [SERVER] docker login -u 用户名 -p 密码 仓库名称 # 登入私有仓库 [rootlocalhost ~]# docker login --…...
与擎创科技共建一体化“数智”运维体系,实现数字化转型
小窗滴滴小编获取最新版公司简介 前言: 哈喽大家好,最近分享的互联网IT热讯大家都挺喜欢,小编看着数据着实开心,感谢大家支持,小编会继续给大家推送。 新岁即将启封,我们一年一期的运维干货年末大讲也要…...
开放网络+私有云=?星融元的私有云承载网络解决方案实例
在全世界范围内的云服务市场上,开放网络一直是一个备受关注的话题。相比于传统供应商的网络设备,开放网络具备软硬件解耦、云原生、可选组件丰富等优势,对云服务商和超大型企业有足够的吸引力。 SONiC作为开源的网络操作系统,使得…...
【Linux学习笔记】Linux下nginx环境搭建
1、下载nginx 安装rpm命令: rpm ivh nginx-release.rpm。(直接使用linux命令下载wget http://nginx.org/packages/rhel/6/noarch/RPMS/nginx-release-rhel-6-0.el6.ngx.noarch.rpm 2、设置nginx开机启动 chkconfig nginx on 3、开启nginx服务 方法一:service nginx…...
Python打包
将 Python 脚本打包成可执行的 .exe 文件,通常可以使用 PyInstaller 这个库来实现。PyInstaller 是一个流行的工具,它可以将 Python 程序和所有相关的依赖打包成一个独立的可执行文件,适用于 Windows、Linux 和 macOS 系统。安装 PyInstaller 首先,需要安装 PyInstaller。…...
文件夹色彩标记系统:Folcolor效能倍增指南
文件夹色彩标记系统:Folcolor效能倍增指南 【免费下载链接】Folcolor Windows explorer folder coloring utility 项目地址: https://gitcode.com/gh_mirrors/fo/Folcolor 在信息爆炸的数字化时代,Windows用户每天面对成百上千个黄色文件夹&#…...
从单片机到汽车座舱:ThreadX RTOS在嵌入式领域的真实应用场景与选型思考
ThreadX RTOS在汽车座舱与工业控制中的实战选型指南 当特斯拉Model S的17英寸触控屏在2012年首次亮相时,很少有人注意到支撑这套系统的幕后英雄——实时操作系统。如今,从智能手表到航空电子设备,实时操作系统(RTOS)已成为嵌入式世界的隐形支…...
国产数据库新选择:SpringBoot集成KingbaseES的性能优化全攻略
SpringBoot集成KingbaseES性能调优实战指南 当企业级应用遇到国产数据库新贵KingbaseES,性能优化便成为开发者最关心的核心议题。作为一款兼容PostgreSQL协议的高性能国产数据库,KingbaseES在金融、政务等关键领域展现出越来越强的竞争力。但要让SpringB…...
用DolphinScheduler实现数仓自动化:从零搭建ETL工作流实战
用DolphinScheduler构建电商数仓ETL流水线:实战设计与优化指南 电商平台每天产生的TB级订单数据,如何转化为精准的用户画像和实时销售报表?本文将带你从零搭建一个基于DolphinScheduler的自动化数据处理流水线,解决实际业务场景中…...
vue-beautiful-chat避坑指南:从安装配置到WebSocket实时通信的全流程解析
Vue2实时聊天组件深度实践:从vue-beautiful-chat配置到WebSocket全链路优化 当我们需要在Vue2项目中快速实现一个专业级聊天界面时,vue-beautiful-chat组件无疑是优雅的解决方案。但许多开发者在集成WebSocket实时通信功能时,常会遇到各种&q…...
告别WoMic:用VB-Audio Virtual Cable和TCP Socket自建无线麦克风(含参数配置避坑指南)
无线音频传输方案重构:VB-Audio与TCP Socket的工程实践 在音频处理领域,虚拟麦克风技术一直是个既实用又有趣的话题。许多开发者最初接触这一领域是通过WoMic这样的解决方案,但随着项目复杂度提升,人们往往需要更灵活、更可控的自…...
Untrunc:10倍速视频修复工具,让损坏的MP4/MOV文件起死回生
Untrunc:10倍速视频修复工具,让损坏的MP4/MOV文件起死回生 【免费下载链接】untrunc Restore a truncated mp4/mov. Improved version of ponchio/untrunc 项目地址: https://gitcode.com/gh_mirrors/un/untrunc 你是否曾经因为视频文件损坏而失去…...
零基础掌握SeleniumBasic:革新性浏览器自动化框架全攻略
零基础掌握SeleniumBasic:革新性浏览器自动化框架全攻略 【免费下载链接】SeleniumBasic A Selenium based browser automation framework for VB.Net, VBA and VBScript 项目地址: https://gitcode.com/gh_mirrors/se/SeleniumBasic 每天重复机械的网页操作…...
LazyVim终极指南:如何快速打造你的Neovim梦幻开发环境
LazyVim终极指南:如何快速打造你的Neovim梦幻开发环境 【免费下载链接】LazyVim Neovim懒人配置。 项目地址: https://gitcode.com/GitHub_Trending/la/LazyVim 你是否曾经因为Neovim配置的复杂性而望而却步?是否尝试过各种配置方案却始终找不到那…...
这份榜单够用!高效论文写作全流程AI论文软件推荐(2026 最新)
2026年AI论文软件持续升级,论文写作全流程可拆解为文献调研→选题/开题→大纲/初稿→文献综述→降重/去AI味→润色/格式→查重/投稿七大环节,以下工具按环节精准匹配,兼顾中文适配、降重能力、去AI痕迹、学术合规四大核心需求,覆盖…...
