小程序画带圆角的圆形进度条

老的API

<canvas id="{{canvasId}}" canvas-id="{{canvasId}}" style="opacity: 0;" class="canvas"/>
startDraw() {const { canvasId } = this.dataconst query = this.createSelectorQuery()query.select(`#${canvasId}`).boundingClientRect(res => {if (res?.width) {const width = res.widthconst height = res.heightthis.data.canvasWidth = widththis.data.canvasHeight = height}this.data.canvasContext = wx.createCanvasContext(canvasId, this)this.startProgress()}).exec()},startProgress() {const context = this.data.canvasContextconst width = this.data.canvasWidthconst height = this.data.canvasHeight// 计算百分比let  percentage = 1// 传入剩余和总数 或者传入进度 能算出百分比就行const remain = 0const total = 0const progress = total - remainif (remain && total) {percentage = progress / total}// 原点const centerX = width / 2const cenetrY = height / 2// 半径const radius = width / 2 - 12// 线条粗细const lineWidth = 10// 线条形状const lineCap = 'round'// 背景条颜色let backgroundColor = 'rgba(80, 158, 46, 0.40)'// 进度条颜色let progressColor = '#509E2E'// 背景圆环context.beginPath()context.arc(centerX,cenetrY,radius,-0.75 * Math.PI,1.5 * Math.PI,false)context.lineWidth = lineWidthcontext.lineCap = lineCapcontext.strokeStyle = backgroundColorcontext.stroke()// 进度圆环if (remain && total) {context.beginPath()context.arc(centerX,cenetrY,radius,-0.5 * Math.PI,(-0.5 + 2 * percentage) * Math.PI,false)context.lineWidth = lineWidthcontext.lineCap = lineCapcontext.strokeStyle = progressColorcontext.stroke()}context.draw()},

2d

      <canvas type="2d" canvas-id="{{canvasId}}" id="{{canvasId}}" class="canvas"/>
startDraw() {const { canvasId, canvasWidth, canvasHeight } = this.dataconst query = this.createSelectorQuery().in(this)query.select(`#${canvasId}`).fields({ node: true, size: true }).exec(res => {const canvas = res[0].nodeconst ctx = canvas.getContext('2d')canvas.width = canvasWidthcanvas.height = canvasHeightthis.data.canvasContext = ctxthis.startProgress()})},startProgress() {const context = this.data.canvasContextconst width = this.data.canvasWidthconst height = this.data.canvasHeightcontext.clearRect(0, 0, width, height)// 计算百分比let  percentage = 1// 设置剩余和总数const remain = 50const total = 100const progress = total - remainif (remain && total) {percentage = progress / total}// 原点const centerX = width / 2const cenetrY = height / 2// 半径const radius = width / 2 - 12// 线条粗细const lineWidth = 14// 线条形状const lineCap = 'round'// 背景条颜色let backgroundColor = 'rgba(80, 158, 46, 0.40)'// 进度条颜色let progressColor = '#509E2E'// 异常颜色if (deviceStatus == 'OFFLINE') {backgroundColor = 'rgba(208, 2, 27, 0.40)'progressColor = '#D0021B'}// 背景圆环context.beginPath()context.arc(centerX,cenetrY,radius,-0.75 * Math.PI,1.5 * Math.PI,false)context.lineWidth = lineWidthcontext.lineCap = lineCapcontext.strokeStyle = backgroundColorcontext.stroke()// 进度圆环if (remain && total) {context.beginPath()context.arc(centerX,cenetrY,radius,-0.5 * Math.PI,(-0.5 + 2 * percentage) * Math.PI,false)context.lineWidth = lineWidthcontext.lineCap = lineCapcontext.strokeStyle = progressColorcontext.stroke()}},

this.createSelectorQuery().in(this)要在ready之后调用哦

css

.canvas {height: 340rpx;width: 340rpx;}

老api js里宽高的设置的是170

2d里宽高设置的是340

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

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

相关文章

数据结构:二叉树的链式结构及相关算法详解

目录 一.链式结构的实现 1.二叉树结点基本结构&#xff0c;初始化与销毁&#xff1a; 二.链式结构二叉树的几种遍历算法 1.几种算法的简单区分&#xff1a; 2.前序遍历&#xff1a; 3.中序遍历&#xff1a; 4.后序遍历&#xff1a; 5.层序遍历&#xff08;广度优先遍历B…

WebRTC与PJSIP:呼叫中心系统技术选型指南

助力企业构建高效、灵活的通信解决方案 在数字化时代&#xff0c;呼叫中心系统的技术选型直接影响客户服务效率和业务扩展能力。WebRTC与PJSIP作为两大主流通信技术&#xff0c;各有其核心优势与适用场景。本文从功能、成本、开发门槛等维度为您深度解析&#xff0c;助您精准匹…

cuda-12.4.0 devel docker 中源码安装 OpenAI triton

1&#xff0c;准备 docker 容器 下载docker image: $ sudo docker pull nvidia/cuda:12.6.2-devel-ubuntu20.04 创建容器&#xff1a; sudo docker run --gpus all -it --name cuda_LHL_01 -v /home/hongleili/ex_triton/tmp1:/root/ex_triton/tmp1 nvidia/cuda:12.6…

Zookeeper(67) Zookeeper在HBase中的应用是什么?

Zookeeper 在 HBase 中起到了至关重要的作用&#xff0c;主要用于协调和管理 HBase 集群中的多个组件。具体来说&#xff0c;Zookeeper 在 HBase 中的应用包括以下几个方面&#xff1a; Master 选举&#xff1a;HBase 集群中可以有多个 Master 节点&#xff0c;但只有一个处于…

React antd的datePicker自定义,封装成组件

一、antd的datePicker自定义 需求&#xff1a;用户需要为日期选择器的每个日期单元格添加一个Tooltip&#xff0c;当鼠标悬停时显示日期、可兑换流量余额和本公会可兑流量。这些数据需要从接口获取。我需要结合之前的代码&#xff0c;确保Tooltip正确显示&#xff0c;并且数据…

由 JRE 软链接依赖引发的故障排查

最近工作查到了一个有意思的问题&#xff0c;在这里记录一下。 1. 问题背景 Java应用 SAP 系统自带了一个 jre&#xff0c;但在Ubutnu2004上部分功能不正常。 初步排查发现&#xff0c;该 JRE 版本来源不明&#xff08;用户也说不清是哪里来的&#xff09;。 于是尝试以下方…

2-3文件的属性信息

文章目录 1 file命令2 stat命令 1 file命令 用来识别文件类型 # 参数的位置是任意的 file 文件名 [参数]-b 只显示文件类型和文件编码&#xff0c;不显示文件名-i 显示文件的MIME类型-F 设置输出字符串的分隔符-L 查看软链接文件自身文件属性liyblyb:/tmp$ file xxxtmp.log …

JavaScript 系列之:垃圾回收机制

前言 垃圾回收是一种自动内存管理机制&#xff0c;用于检测和清除不再使用的对象&#xff0c;以释放内存空间。当一个对象不再被引用时&#xff0c;垃圾回收器会将其标记为垃圾&#xff0c;然后在适当的时候清除这些垃圾对象&#xff0c;并将内存回收给系统以供其他对象使用。…

(七)趣学设计模式 之 适配器模式!

目录 一、 啥是适配器模式&#xff1f;二、 为什么要用适配器模式&#xff1f;三、 适配器模式的实现方式1. 类适配器模式&#xff08;继承插座 &#x1f468;‍&#x1f469;‍&#x1f467;‍&#x1f466;&#xff09;2. 对象适配器模式&#xff08;插座转换器 &#x1f50c…

【Java基础】Java中new一个对象时,JVM到底做了什么?

Java中new一个对象时&#xff0c;JVM到底做了什么&#xff1f; 在Java编程中&#xff0c;new关键字是我们创建对象的最常用方式。但你是否想过&#xff0c;当你写下new MyClass()时&#xff0c;Java虚拟机&#xff08;JVM&#xff09;到底在背后做了哪些工作&#xff1f;今天&…

内网穿透:打破网络限制的利器

目录 深入理解内网穿透 内网与外网的奥秘 内网穿透的原理剖析 总结与展望 在如今这个数字化时代&#xff0c;网络已经成为我们生活和工作中不可或缺的一部分。但你是否遇到过这样的困扰&#xff1a;在家办公时&#xff0c;想要访问公司内部的文件服务器&#xff0c;却因为网…

【汽车ECU电控数据管理篇】HEX文件格式解析篇章

一、HEX格式文件是啥 HEX 文件是 Intel 公司提出的一种按地址排列的数据信息格式&#xff0c;通常用于存储嵌入式系统的二进制代码。它以 ASCII 码的形式记录数据&#xff0c;每一行以冒号开头&#xff0c;包含数据长度、地址、记录类型、数据和校验码等信息。HEX 文件常用于程…

深入理解 CSS pointer-events: none:穿透点击的魔法

一、什么是 pointer-events: none&#xff1f; pointer-events: none 是一个强大的 CSS 属性&#xff0c;它控制元素是否响应鼠标/触摸事件&#xff08;如点击、悬停、拖拽&#xff09;。当设置为 none 时&#xff0c;元素会变得“透明”&#xff0c;事件会直接穿透到下方的元…

【AHK】资源管理器自动化办公实例/自动连点设置

此处为一个自动连续点击打开检查的自动化操作案例&#xff0c;没有quicker的鼠键录制&#xff0c;不常用了&#xff0c;做个备份 #MaxThreadsPerHotkey 2 ; 这个是核心&#xff01;&#xff01;&#xff01;&#xff01;确保可以同时运行多个热键或标签global isRunning : tru…

html css js网页制作成品——HTML+CSS甜品店网页设计(5页)附源码

目录 一、&#x1f468;‍&#x1f393;网站题目 二、✍️网站描述 三、&#x1f4da;网站介绍 四、&#x1f310;网站效果 五、&#x1fa93; 代码实现 &#x1f9f1;HTML 六、&#x1f947; 如何让学习不再盲目 七、&#x1f381;更多干货 一、&#x1f468;‍&#x1f…

Springboot使用Milvus的基本操作

Milvus 先得保证数据的正确安装并且正确运行 <dependency><groupId>com.google.code.gson</groupId><artifactId>gson</artifactId> </dependency> <dependency><groupId>io.milvus</groupId><artifactId>milvu…

初阶数据结构(C语言实现)——3顺序表和链表(2)

2.3 数组相关面试题 原地移除数组中所有的元素val&#xff0c;要求时间复杂度为O(N)&#xff0c;空间复杂度为O(1)。OJ链接 力扣OJ链接-移除元素删除排序数组中的重复项。力扣OJ链接-删除有序数组中的重复项合并两个有序数组。力扣OJ链接-合并两个有序数组 2.3.1 移除元素 1…

【力扣】2619. 数组原型对象的最后一个元素——认识原型与原型链

【力扣】2619. 数组原型对象的最后一个元素——认识原型与原型链 文章目录 【力扣】2619. 数组原型对象的最后一个元素——认识原型与原型链题目解决方案概述全局上下文函数上下文事件处理程序构造函数上下文类上下文显式 / 隐式绑定绑定方法和永久 this 上下文 方法 1&#xf…

ubuntu终端指令集 shell编程基础(一)

磁盘指令 连接与查看&#xff1a;磁盘与 Ubuntu 有两种连接方式&#xff1b;使用ls /dev/sd*查看是否连接成功&#xff0c;通过df系列指令查看磁盘使用信息。若 U 盘已挂载&#xff0c;相关操作可能失败&#xff0c;需用umount取消挂载。磁盘操作&#xff1a;使用sudo fdisk 磁…

基于Spark的电商供应链系统的设计与实现

目录 1.研究背景与意义 2、国内外研究现状 3、相关理论与技术 &#xff08;一&#xff09;分布式计算系统Spark &#xff08;二&#xff09;数据仓库Hive &#xff08;三&#xff09;读取服务器本地磁盘的日志数据Flume &#xff08;四&#xff09;分布式消息队列Kafka …