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。…...
Zotero茉莉花插件:3大功能轻松管理中文文献,科研效率翻倍提升
Zotero茉莉花插件:3大功能轻松管理中文文献,科研效率翻倍提升 【免费下载链接】jasminum A Zotero add-on to retrive CNKI meta data. 一个简单的Zotero 插件,用于识别中文元数据 项目地址: https://gitcode.com/gh_mirrors/ja/jasminum …...
逻辑表达式与真值表转换
逻辑表达式与真值表转换 真值表与逻辑表达式是数字电路设计的两种等价表示,掌握它们之间的转换是基本功。 🎯 本章学习要点 理解真值表的结构和表示方法掌握从真值表写出逻辑表达式(最小项之和)掌握从逻辑表达式列出真值表了解最…...
自动驾驶人机交接:DMS与安全验证如何破解控制权转移困局
1. 自动驾驶人机交接的核心困境与行业分野最近几年,自动驾驶(AV)和高级驾驶辅助系统(ADAS)无疑是汽车科技领域最炙手可热的话题。无论是传统车企的“新四化”转型,还是科技公司的颠覆性入局,大家…...
用Godot 4.0复刻街霸3D名场面:从Blender绑定到动画状态机的完整实战
用Godot 4.0复刻街霸3D名场面:从Blender绑定到动画状态机的完整实战 街机厅里那些经典格斗游戏的3D重制总能勾起玩家的情怀,而今天我们将用Godot 4.0完整复刻《街霸》中隆的招牌必杀技——从Blender的骨骼绑定到Godot动画状态机的全流程实现。这不是简单…...
VisualCppRedist AIO:告别DLL错误,Windows系统必备的一体化运行库解决方案
VisualCppRedist AIO:告别DLL错误,Windows系统必备的一体化运行库解决方案 【免费下载链接】vcredist AIO Repack for latest Microsoft Visual C Redistributable Runtimes 项目地址: https://gitcode.com/gh_mirrors/vc/vcredist 你是否曾经在打…...
十大类型学系统性阐释:自感痕迹论的发生学分类体系
十大类型学系统性阐释:自感痕迹论的发生学分类体系引言:类型学作为公理的微分展开一个完备的发生学体系,不应满足于对单一现象的孤立分类。它应当从少数基本公设出发,在不同分析层面自然衍生出互相关联又各具独立性的类型学。自感…...
告别疲劳计算烦恼:用nCode DesignLife搞定汽车悬架非线性载荷分析(附信号处理技巧)
告别疲劳计算烦恼:用nCode DesignLife搞定汽车悬架非线性载荷分析(附信号处理技巧) 悬架系统作为汽车底盘的核心部件,其疲劳寿命直接关系到整车可靠性与安全性。但在实际工程分析中,工程师们常常被一个棘手问题困扰&am…...
从物理接口到电平标准:串口、COM口、并口、RS232、USB的演进与实战选型
1. 串口通信的起源与基础概念 第一次接触串口是在大学实验室里,那台老旧的示波器需要通过一个9针的接口连接电脑。当时完全不明白为什么这个看起来像梯形的小接口能传输数据,直到后来拆解了一个鼠标才恍然大悟——原来这就是串口通信的雏形。 串口通信本…...
别再只调包了!用PyTorch和DGL从零实现一个GCN层(附Cora节点分类实战代码)
从零构建图卷积网络:PyTorch与DGL实战中的底层逻辑拆解 当你第一次调用g.update_all()时,是否好奇过DGL框架背后究竟发生了什么?那些看似简单的消息传递和聚合操作,实际上隐藏着图卷积网络最精妙的设计思想。本文将带你深入GCN的数…...
