uniapp纯CSS实现圆形进度条组件

uniapp纯CSS实现圆形进度条组件。圆形进度条组件组合做一个步骤进度组件是非常常见。

纯 CSS 实现圆形进度条组件有以下几个好处:

轻量级:由于纯 CSS 实现,无需额外的 JavaScript 或图像资源,所以组件的文件大小相对较小,加载速度快,对页面性能的影响较小。

兼容性好:CSS 是 Web 标准的一部分,几乎所有现代浏览器都支持 CSS。因此,纯 CSS 实现的圆形进度条组件在各种设备和浏览器上都能正常显示和运行。

可定制性强:CSS 提供了丰富的样式属性和选择器,可以灵活地自定义圆形进度条的样式、颜色、大小、动画效果等,以满足不同项目和设计需求。

简单易用:纯 CSS 实现的圆形进度条组件通常使用简单,只需要在 HTML 中添加相应的 CSS 类或样式即可,无需复杂的配置或调用 JavaScript 函数。

性能优化:由于纯 CSS 实现的圆形进度条不涉及 JavaScript 的计算和操作,可以减轻客户端的计算负担,提高页面的响应速度和性能。

<template><view class="flex align-center diygw-col-24 justify-center"><view class="progress-circle " :class="'progress-'+innerPercent" :style="{'--not-progress-color':notProgressColor,'--bg-color':bgColor,'--color':color,'--progress-color':progressColor,'--width':$u.addUnit(width),'--font-size':$u.addUnit(fontSize),'--border-width':$u.addUnit(borderWidth)}"><view class="inner"><view class="progress-number">{{innerPercent}}%</view></view></view></view>
</template><script>export default {props: {width: {type: Number,default: 100},borderWidth: {type: Number,default: 20},bgColor: {type: String,default: '#fff'},notProgressColor: {type: String,default: '#ddd'},progressColor: {type: String,default: '#07c160'},color:{type: String,default: '#07c160'},fontSize:{type: Number,default: 24},/*** 进度(0-100)*/percent: {type: Number,default: 0},/*** 是否动画*/animate: {type: Boolean,default: true},/*** 动画速率*/rate: {type: Number,default: 5}},computed: {/*** @private*/complete() {return this.innerPercent == 100}},watch: {percent(percent) {this.setPercent()}},data() {return {innerPercent: 0,timeout: null}},mounted() {this.setPercent()},methods: {setPercent() {if (this.animate) {this.stepTo(true)} else {this.innerPercent = this.percent}},clearTimeout() {clearTimeout(this.timeout)Object.assign(this, {timeout: null})},stepTo(topFrame = false) {if (topFrame) {this.clearTimeout()}if (this.percent > this.innerPercent && !this.complete) {this.innerPercent=this.innerPercent+1}if (this.percent < this.innerPercent && this.innerPercent > 0) {this.innerPercent--}if (this.innerPercent !== this.percent) {this.timeout = setTimeout(() => {this.stepTo()}, this.rate)}}}}
</script><style lang="scss" scoped>.progress-circle {--progress-color:#63B8FF;--not-progress-color:#ddd;--bg-color:#fff;--width: 240rpx;--border-width: 10rpx;--color:#777;--font-size:1.5rem;$diythemeColor:var(--progress-color) ;$diybackColor: var(--not-progress-color) ;position: relative;display: flex;align-items: center;justify-content: center;width: var(--width);height: var(--width);border-radius: 50%;transition: transform 1s;background-color: $diybackColor;padding:var(--border-width);.inner{width:100%;height: 100%;display: flex;align-items: center;justify-content: center;border-radius: 50%;z-index:1;background-color: var(--bg-color);}&:before {content: '';left:0;top:0;position: absolute;width: 100%;height: 100%;border-radius: 50%;background-color: $diythemeColor;}$step: 1;$loops: 99;$increment: 3.6;$half: 50;@for $i from 0 through $loops {&.progress-#{$i * $step}:before {@if $i < $half {$nextDeg: 90deg+($increment * $i);background-image: linear-gradient(90deg, $diybackColor 50%, transparent 50%, transparent), linear-gradient($nextDeg, $diythemeColor 50%, $diybackColor 50%, $diybackColor);}@else {$nextDeg: -90deg+($increment * ($i - $half));background-image: linear-gradient($nextDeg, $diythemeColor 50%, transparent 50%, transparent), linear-gradient(270deg, $diythemeColor 50%, $diybackColor 50%, $diybackColor);}}}.progress-number {width: 100%;line-height: 1;text-align: center;font-size: var(--font-size);color: var(--color);}}</style>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/293893.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python生成圣诞节词云-代码案例剖析【第17篇—python圣诞节系列】

文章目录 ❄️Python制作圣诞树词云-中文&#x1f42c;展示效果&#x1f338;代码&#x1f334;代码剖析 ❄️Python制作圣诞树词云-英文&#x1f42c;展示效果&#x1f338;代码&#x1f334;代码剖析 &#x1f385;圣诞节快乐&#xff01; ❄️Python制作圣诞树词云-中文 &a…

首涂第二十八套_新版海螺M3多功能苹果CMSv10自适应全屏高端模板

首涂第二十八套_新版海螺M3多功能苹果cmsv10自适应全屏高端模板 多功能苹果cmsv10自适应全屏高端模板开源授权版 这是一款带“主题管理系统”的模板。这是一款好模板。 花大价钱收购了海螺这两个模板的版权。官方正品&#xff0c;非盗版。关闭域名授权 后台自定义菜单 请把…

【大模型实践】基于文心一言的对话模型设计

文心一言&#xff08;英文名&#xff1a;ERNIE Bot&#xff09;是百度全新一代知识增强大语言模型&#xff0c;文心大模型家族的新成员&#xff0c;能够与人对话互动、回答问题、协助创作&#xff0c;高效便捷地帮助人们获取信息、知识和灵感。文心一言从数万亿数据和数千亿知识…

使用GitZip下载GitHub指定文件

目录 一、GitZip二、安装GitZip三、链接GitHub四、检验是否安装成功五、总结 一、GitZip GitZip是一个非常实用的浏览器插件&#xff0c;它主要有以下几个优点&#xff1a; 下载指定文件&#xff1a;在我们浏览Github时&#xff0c;如果只想下载某个子目录的内容&#xff0c;…

Layui 下拉select多选实现

1. html <div id"mo_deptment"></div> 2.引用 <script src"~/layuiadmin/layui/xm-select.js"></script>3.设置全局变量存储控件 var mo_deptmentSelect; 4.layui.use 中初始化 4.1 列表数据 var mo_deptmentdata [ …

【PostGIS】PostgreSQL15+对应PostGIS安装教程及空间数据可视化

一、PostgreSQL15与对应PostGIS安装 PostgreSQL15安装&#xff1a;下载地址PostGIS安装&#xff1a;下载地址&#xff08;选择倒数第二个&#xff09; 1、PostgreSQL安装 下载安装包&#xff1b;开始安装&#xff0c;这里使用默认安装&#xff0c;一直next直到安装完成&…

关于游戏性能优化的技巧

关于游戏性能优化的技巧 游戏性能优化对象池Jobs、Burst、多线程间隔处理定时更新全局广播缓存组件缓存常用数据2D残影优化2D骨骼转GPU动画定时器优化DrawCall合批处理优化碰撞层优化粒子特效 游戏性能优化 好久没有在CSDN上面写文章了&#xff0c;今天突然看到鬼谷工作室技术…

力扣每日一题day38[106. 从中序与后序遍历序列构造二叉树]

给定两个整数数组 inorder 和 postorder &#xff0c;其中 inorder 是二叉树的中序遍历&#xff0c; postorder 是同一棵树的后序遍历&#xff0c;请你构造并返回这颗 二叉树 。 示例 1: 输入&#xff1a;inorder [9,3,15,20,7], postorder [9,15,7,20,3] 输出&#xff1a;[…

基于单片机设计的指纹锁(读取、录入、验证指纹)

一、前言 指纹识别技术是一种常见的生物识别技术&#xff0c;利用每个人指纹的唯一性进行身份认证。相比于传统的密码锁或者钥匙锁&#xff0c;指纹锁具有更高的安全性和便利性&#xff0c;以及防止钥匙丢失或密码泄露的优势。 基于单片机设计的指纹锁项目是利用STC89C52作为…

数据可视化:赋能企业决策的视觉力量

数据可视化在企业中扮演着至关重要的角色&#xff0c;为决策者提供了直观、深入的数据解读&#xff0c;帮助他们更好地理解业务状况并作出明智的决策。今天我就以可视化从业者的角度来简谈说说如何让数据可视化为更好地为企业服务。 首先&#xff0c;数据可视化可以让数据更易…

让生活更智能,P1600边缘智能网关带你进入智能家居新时代

一、什么是P1600边缘智能网关&#xff1f; 在科技日新月异的今天&#xff0c;我们的生活已经被各种智能产品所包围。而在这个智能化的浪潮中&#xff0c;P1600边缘智能网关以其独特的优势&#xff0c;成为了智能家居的重要组成部分。那么&#xff0c;什么是P1600边缘智能网关呢…

el-select绑定值的坑

碰到一个问题&#xff0c;选择框的数据是后端传过来的&#xff0c;下拉框的数据也是后端传过来的&#xff0c;但是打开下拉框时&#xff0c;发现数据没有高亮。 最后发现&#xff0c;只要选择框v-model给的值和option的value绑定的值一致&#xff0c;就可以高亮。 大多数情况下…