uniapp中实现圆形进度条的方式有哪些?

前言

        在uniapp开发小程序或者apk时,页面需要用到一个圆形进度条(带文字和百分比的),自己也自定义过一个,但是有一点小问题,咱先展示如何引入插件市场的在介绍自定义的!一共四种,但是你需要考虑自己的兼容性!

正文

一、插件市场

1.进入DCloud插件市场:DCloud 插件市场

2.找到了一款和自己需求符合的,兼容性也是比较好的,做uniapp项目是需要考虑和测试兼容性的,只有真机上能看的出来,模拟器不一定看的出来!!!圆形进度条 

3.下载插件并导入HBuilderX

4.点击之后需要登录账号密码,然后导入到你uniapp中的uni_modules文件夹下,这个文件夹下面不需要引入页面在引入了。

5.页面中使用组件:

<l-circularProgress :fontShow="false" bgColor="#f2f2f2" :lineWidth="10" boxWidth="90" boxHeight="90" progressColor="#7ef22e"
	  :percent="80" style="position: relative;">
	<view class="centerTxtSpecial" style="position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%);">
	  <view class="numSpecial">80%</view>
	  <view class="txtSpecial">性能</view>
	</view>
</l-circularProgress>

css代码

.centerTxtSpecial {
	position: absolute;
	top: 50%;
	left: 47%;
	transform: translate(-50%, -50%);
	text-align: center;
}

.numSpecial {
	font-size: 30rpx;
	font-family: Arial;
	/* font-weight: bold; */
	color: #008000;
}

.txtSpecial {
	font-size: 28rpx;
	font-family: PingFang SC;
	font-weight: 400;
	color: #999;
	margin-top: 8rpx;
}

6、效果如下

二、自定义组件:

1.html代码

<div v-for="(item,index) in dataList" :key="index" class="setBorder" @click="handledetail(item)">
    /**主要内容*/
    <view class="circlecontent">
	    <view class="circleprogress">
		    <view class="progresstext">
			    {{item.percent}}%
			    <text style="font-size: 12px; width: 100%;">
				    性能
			    </text>
		    </view>
		    <view class="wrapper">
			    <view class="leftprogress" :style="{ transform: 'rotate('+(item.percent * 3.6 <= 180 ? -45 : -45+(item.percent * 3.6-180))+'deg)'}"></view>
		    </view>
		    <view class="wrapper">
			    <view class="rightprogress" :style="{ transform: 'rotate('+(item.percent * 3.6 <= 180 ? 45 + item.percent * 3.6 : 45+180)+'deg)'}"></view>
		    </view>
	    </view>
    </view>
</div>

2.js代码

leftprogress: 'rotate(-45deg)',
rightprogress: 'rotate(45deg)',
dataList: []

3.css代码


.circlecontent {
	width: 80px;
	display: flex;
	justify-content: center;
	flex-flow: wrap;
	align-items: center;
	border-radius: 50%;
	text-align: center;
	height: 80px;
	position: relative;
}

.circleprogress {
	width: 80px;
	height: 80px;
	display: flex;
	justify-content: center;
}

.circleprogress .progresstext {
	position: absolute;
	font-size: 12px;
	width: 50px;
	display: flex;
	justify-content: center;
	align-items: center;
	color: #008000;
	flex-wrap: wrap;
	top: 45%;
	left: 15%;
	transform: translateY(-50%);
}

.circleprogress .wrapper {
	width: 80px;
	height: 80px;
	overflow: hidden;
}

.circleprogress .leftprogress,
.rightprogress {
	width: 70px;
	height: 70px;
	border: 10px solid #eee;
	border-bottom: 10px solid #7ef22e;
	border-radius: 50%;
}

.circleprogress .leftprogress {
	border-right: 10px solid #7ef22e;
}

.circleprogress .rightprogress {
	border-left: 10px solid #7ef22e;
	margin-left: -40px;
}

4.效果:

这个兼容性都没问题,但是有个缺角!

三、第三方自定义组件:

uniapp圆环进度条组件_环形进度条组件-CSDN博客

        问题:canvas层级高,目前覆盖文字信息没有展示!只有环形展示出来了!

四、uview官方组件

1.html

<u-circle-progress active-color="#7ef22e" :percent="item.percent">
	<view class="centerTxtSpecial">
		<div class="numSpecial">{{item.percent}}%</div>
		<text class='txtSpecial'>性能</text>
	</view>
</u-circle-progress>

2.js引入组件

        看你自己文件位置,不能完全copy

import uCircleProgressVue from "../../../components/owner/u-circle-progress.vue";
export default {
    components: {
        'u-circle-progress': uCircleProgressVue
    }
}

3.这个官方的在安卓手机上apk无法正常显示,小程序都是ok的!

总结

        个人是很推荐和支持第一种的,canvas绘制图形很丝滑,但是也有层级很高的问题!原生虽然兼容性很好,但是可能并没有那么流程!你也可以尝试自己做好用的组件出来!

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

PPT基础:表格

目录 表格基本功能底纹框线单元格表格美化 表格基本功能 底纹 所在位置&#xff1a;插入图表>>>表设计>>>底纹 底纹&#xff1a;相当于每个单元格的“颜色填充”如何用表格拆分图片 &#xff08;1&#xff09;生成一个表格>>>插入一张图片>>…

高效开发与设计:提效Spring应用的运行效率和生产力 | 京东云技术团队

引言 现状和背景 Spring框架是广泛使用的Java开发框架之一&#xff0c;它提供了强大的功能和灵活性&#xff0c;但在大型应用中&#xff0c;由于Spring框架的复杂性和依赖关系&#xff0c;应用的启动时间和性能可能会受到影响。这可能导致开发过程中的迟缓和开发效率低下。优…

Transformer笔记

Transformer encoder-decoder架构 Encoder&#xff1a;将输入序列转换为一个连续向量空间中的表示。Encoder通常是一个循环神经网络&#xff08;RNN&#xff09;或者卷积神经网络&#xff08;CNN&#xff09;&#xff0c;通过对输入序列中的每个元素进行编码&#xff0c;得到…

[Genode] ARM TrustZone

这是关于读文章ARM TrustZone的记录&#xff0c;原文是英文&#xff0c;刚开始会有点反应不过来&#xff0c;这里大部分是对文章的翻译与提取。 ARM信任区技术 ARM信任区是在 热烈讨论关于X86平台上的可信平台模块&#xff08;TPM&#xff09; 时引入的。。 就像TPM芯片神奇…

nginx学习(3)Nginx 负载均衡

Nginx 负载均衡 实战案例 实现效果 浏览器地址栏输入地址 http://172.31.0.99/oa/a.html&#xff0c;负载均衡效果&#xff0c;平均在 8083 和 8084 端口中&#xff0c;刷新浏览器&#xff0c;显示不同 一、配置 1、先创建2个文件夹&#xff0c;并将apache-tomcat-8.5.87解…

简化业务流程——通知短信API在企业中的应用

引言 通知短信API是一种可以帮助企业简化业务流程的通讯工具。随着移动互联网技术的不断发展&#xff0c;移动通讯已经成为了我们日常生活和企业运营中不可或缺的一部分。通知短信API是一种可以在企业中将移动通讯应用到极致的工具&#xff0c;它可以为企业提供高效便捷的通讯…

[qemu逃逸] XNUCA2019-vexx

前言 这题没有去符合, 题目本身不算难. 用户名: root 密码: goodluck 设备逆向 题目没有去符合, 所以其实没啥好讲了, 就列一些笔者认为关键的地方 这里的定义了两块 mmio 内存区. 然后看下设备实例结构体: 可以看到 QEMUTimer, 所以多半就是劫持 dma_timer 了. 漏洞点在…

【日常总结】java JSON 转 实体类 (含多层嵌套)

一、场景 二、问题 三、解决方案 四、实战 1. 引入maven依赖 2. IEDA 安装lombok 插件 3. 安装 GsonFormPlu 插件 4. 使用 Stage 1&#xff1a;新建类&#xff0c;右键 选择 Generate Stage 2&#xff1a;选择 GsonFormatPlus Stage 3&#xff1a;将json复制其中&…

Linux:详解(yum的使用、vim编辑器命令集合以及gcc/g++编译器的使用)

Linux 软件包管理器 yum 什么是软件包&#xff1a; 在Linux下安装软件, 一个通常的办法是下载到程序的源代码, 并进行编译, 得到可执行程序. 但是这样太麻烦了, 于是有些人把一些常用的软件提前编译好, 做成软件包(可以理解成windows上的安装程序)放在一个服务器上, 通…

图片地址GPS经纬度查询

先打开exif图片查询的网站&#xff1a; 改图宝的&#xff1a;https://www.gaitubao.com/exif图虫de的:EXIF信息查看器 (tuchong.com) 将这个地点&#xff1a;51 deg 30 51.90" N, 0 deg 5 38.73" W 修改为&#xff1a;5130 51.90" N, 05 38.73" W 到谷…

Java JSON字符串替换其中对应的值

代码&#xff1a; public static void main(String[] args) { // String theData crmScene.getData();String theData "[{\"type\":1,\"values\":[\"审批中\",\"未交付\"],\"name\":\"status\"}]"…

听懂未来:AI语音识别技术的进步与实战

目录 一、引言语音识别技术的魅力与挑战语音识别的基本概念技术的进步与应用实际应用的影响 二、语音识别技术的历史1. 初期探索&#xff08;1950s - 1970s&#xff09;早期的实验 2. 隐马尔可夫模型的兴起&#xff08;1980s&#xff09;算法创新 3. 深度神经网络的应用&#x…

php 时区查看和设置

php的时区&#xff0c;关系到相关时间函数的结果 其他相关&#xff1a; linux时区设置&#xff1a;链接 pgsql时区设置&#xff1a; 一、查看可以用的时区列表 新建一个php文件&#xff0c;输入下面程序即可 <?php echo "<pre>"; var_dump(timezone_id…

Linux系统编程 day03 Makefile、gdb、文件IO

Linux系统编程 day03 Makefile、gdb、文件IO 1. Makefile2. gdb3. 文件IO 1. Makefile Makefile文件中定义了一系列规则来指定哪些文件需要先编译&#xff0c;哪些文件需要后编译&#xff0c;哪些文件需要重新编译&#xff0c;甚至更加复杂的功能操作。Makefile就像一个shell脚…

阿里云ack集群升级流程

最近一直在升级过期的ack 集群版本 从1.22升级到1.24.。 参考&#xff1a; 升级流程、方式及所需时间

vue.js 短连接 动态连接

有这么一种场景&#xff0c;我们实现了某个业务&#xff0c;现在需要将这个业务连接对外推广以期实现我们的运营、推广、佣金目的&#xff0c;那么我们如何实现呢&#xff1f; 比如这个页面连接为&#xff1a; https://mp.domain.com/user/creation/editor?spm1&userno12…

如何使用 WPF 应用程序连接 FastReport报表

随着期待已久的FastReport WPF的发布&#xff0c;您不再需要使用 FastReport .NET 来处理基于 WPF 的项目。 不久前&#xff0c;在 FastReport .NET 中使用 WPF 还相当不方便。并非一切都进展顺利&#xff1b;连接 FastReport.dll 和许多其他问题存在问题。我们重新思考了该方…

Linux+qt:创建动态库so,以及如何使用(详细步骤)

目录 1、根据安装Qt Creator的向导进行创建 2、开发动态库注意的一些细节 3、给动态库添加一个对外开放的接口文件 4、了解下Qt的 .pri文件&#xff08;非常实用&#xff09; 5、如何调用动态库.so 1、根据安装Qt Creator的向导进行创建 &#xff08;1&#xff09;选择“…
最新文章