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

news2024/11/16 21:25:02

前言

        在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.coloradmin.cn/o/1234247.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

G管螺纹尺寸对照表

G管螺纹尺寸对照表 NPT 是 National (American) Pipe Thread 的缩写&#xff0c;属于美国标准的 60 度锥管螺纹&#xff0c;用于北美地区&#xff0e;国家标准可查阅 GB/T12716-1991 PT 是 Pipe Thread 的缩写&#xff0c;是 55 度密封圆锥管螺纹&#xff0c;属惠氏螺纹家族&a…

视频剪辑技巧:如何高效地将多个视频合并成一个新视频

在视频制作过程中&#xff0c;将多个视频合并成一个新视频是一个常见的操作。这涉及到将多个片段组合在一起&#xff0c;或者将不同的视频素材进行混剪。无论是制作一部完整的影片&#xff0c;还是为社交媒体提供短视频&#xff0c;都要掌握如何高效地将多个视频合并。现在一起…

广州华锐互动:3D模拟体验火箭发射过程有什么教育意义?

3D虚拟还原火箭发射过程在教育领域有着深远的意义。它能够为学生提供直观、生动的体验&#xff0c;帮助他们更好地理解和掌握相关知识&#xff0c;激发他们对科技的兴趣和探索欲望。 首先&#xff0c;3D虚拟还原火箭发射过程可以帮助学生更好地理解和掌握航天科技知识。在火箭发…

vue-waterfall2 实现瀑布流,及总结的问题

注意&#xff1a;引入需要在主界面引入&#xff0c;直接在组件中引用会有问题 1.安装 npm install vue-waterfall21.8.20 --save &#xff08;提示&#xff1a;一定要安装1.8.20&#xff0c;最新版会有一部分问题&#xff09; 2.打开main.js文件 import waterfall from v…

python 实现等声值线图绘制

今天讲一类环评项目的噪声预测 - 风电 风机噪声作为面源目前难有成熟的模型进行预测。根据国内外的研究&#xff0c;都是根据与风机中心的位置进行分级预测。 翟国庆等利用美国航天航空局&#xff08;NASA&#xff09;研发的风电机组噪声预测模型&#xff08;以下简称 NASA”…

数字化转型导师坚鹏:数字化时代银行网点厅堂营销5大重点分析

数字化时代银行网点厅堂营销存在以下5大重点&#xff1a; 1、厅堂宣传。应以主推产品作为厅堂宣传的宣传重点&#xff0c;结合视频宣传、平面物料、互动机具、陈列物料等多维度&#xff0c;开展有序重复展示&#xff0c;进而加大吸引客户关注度。 2、产品推荐。在识别出中高端…

基于混沌博弈算法优化概率神经网络PNN的分类预测 - 附代码

基于混沌博弈算法优化概率神经网络PNN的分类预测 - 附代码 文章目录 基于混沌博弈算法优化概率神经网络PNN的分类预测 - 附代码1.PNN网络概述2.变压器故障诊街系统相关背景2.1 模型建立 3.基于混沌博弈优化的PNN网络5.测试结果6.参考文献7.Matlab代码 摘要&#xff1a;针对PNN神…

亚马逊美国站买家号注册流程

注册亚马逊美国站买家号一般用邮箱及手机号注册就可以了&#xff0c;具体操作如下&#xff1a; 1、在浏览器里面输入亚马逊美国站的官网地址。 2、点击注册&#xff0c;输入姓名、邮箱或手机号、密码&#xff0c;然后进行验证邮箱或者手机号。如果是用的邮箱进行注册验证&…

MyBatis Generator 插件 详解自动生成代码

MyBatis Generator&#xff08;MBG&#xff09;是MyBatis和iBATIS的代码生成器。可以生成简单CRUD操作的XML配置文件、Mapper文件(DAO接口)、实体类。实际开发中能够有效减少程序员的工作量&#xff0c;甚至不用程序员手动写sql。 它将为所有版本的MyBatis以及版本2.2.0之后的i…

2024年测试工程师必看比列之Unittest单元测试框架-知识点总结

unittest单元测试框架 1.导入unittest包 2.创建类的时候要继承与unittest.TestCase类 2.1&#xff0c;setUp方法是在类中测试执行前的初始化工作 2.2&#xff0c;tearDown方法是在类中测试执行后的清除工作 2.3&#xff0c;测试用例函数以test开头的方法是普通的测试用例方法&…

嵌入式Linux学习(1)——经典CAN介绍(上)

目录 一. CAN与ISO-OSI Model 二. CAN通信 2.1 接线方式 2.1.1 闭环网络 2.1.2 开环网络 2.2 收发流程 2.2.1 发送 2.2.2 接收 三. CAN BUS访问与仲裁 3.1 “线与”机制​ 3.2 仲裁机制 REF CAN&#xff08;Controller Area Network&#xff09;总线协议是由 BOSC…

uniapp中swiper 轮播带左右箭头,点击切换轮播效果demo(整理)

可以点击箭头左右切换-进行轮播 <template><view class"swiper-container"><swiper class"swiper" :current"currentIndex" :autoplay"true" interval"9000" circular indicator-dotschange"handleSw…

CVE-2023-0179提权利用

前言 在CVE-2023-0179-Nftables整型溢出中&#xff0c;分析了漏洞的成因&#xff0c;接下来分析漏洞的利用。 漏洞利用 根据漏洞成因可以知道&#xff0c;payload_eval_copy_vlan函数存在整型溢出&#xff0c;导致我们将vlan头部结构拷贝到寄存器&#xff08;NFT_REG32_00-N…

ASO优化之关于iOS的A/B测试

ASO优化的一个重要方面在于运行A/B测试&#xff0c;主要围绕应用图标、屏幕截图和预览视频&#xff0c;从而来完善应用程序的视觉元素和元数据。 1、A/B测试的时间安排。 启动测试之前&#xff0c;需要经过Apple的审核流程。如果我们的预览资源被拒绝&#xff0c;需要调整并重…

java中,通过替换word模板中的关键字后输出一个新文档

一、要用到的jar包 我已上传了相关的jar包&#xff0c;需要的可以通过以下链接直接下载&#xff1a; https://download.csdn.net/download/qq_27387133/88558034 具体jar包截图&#xff1a; 二、实现的代码 注意&#xff1a;文件要用docx格式!!! word变量替换的方法&#…

Altium Designer学习笔记3

原理图生成PCB&#xff1a; 然后是手动布局&#xff1a; 可以看到先没有交叉。 最终再走线。 另外&#xff0c;了解下这个封装的一些概念。

MAVEN——PACKAGE、INSTALL、DEPLOY的联系与区别

我们在用maven构建java项目时&#xff0c;最常用的打包命令有mvn package、mvn install、deploy&#xff0c;这三个命令都可完成打jar包或war&#xff08;当然也可以是其它形式的包&#xff09;的功能&#xff0c;但这三个命令还是有区别的。下面通过分别执行这三个命令的输出结…

抖音短视频如何变成gif图?分享这一招就够了

现在抖音已经是每个人手机必备的消遣时间的软件了&#xff0c;各种各样的视频搞笑有趣。当我们想要将这些搞笑的视频画面提取出来做成gif图片的时候应该怎么办呢&#xff1f;很简单&#xff0c;使用在线制作GIF&#xff08;https://www.gif.cn/&#xff09;工具-GIF中文网&…

【数据结构初阶(3)】双向带头结点循环链表

文章目录 Ⅰ 概念及结构Ⅱ 基本操作实现1. 结点的定义2. 创建头节点3. 创建新结点4. 双向链表销毁5. 双向链表打印6. 双向链表尾插7. 双向链表尾删8. 双向链表头插9. 双向链表头删10. 双向链表查找11. 在指定 pos 位置前插入新结点12. 删除指定 pos 位置的结点 Ⅲ 十分钟手搓链…

架构探索之路-第一站-clickhouse | 京东云技术团队

一、前言 架构, 软件开发中最熟悉不过的名词, 遍布在我们的日常开发工作中, 大到项目整体, 小到功能组件, 想要实现高性能、高扩展、高可用的目标都需要优秀架构理念辅助. 所以本人尝试编写架构系列文章, 去剖析市面上那些经典优秀的开源项目, 学习优秀的架构理念来积累架构设…