当前位置:网站首页>小程序 canvas 画布半圆环
小程序 canvas 画布半圆环
2022-04-23 02:07:00 【逸曦穆泽】
1、效果图:
2、wxml:
<view class="fragrance_item">
<view class="fragPos">
<view class="fragNum">{
{perfumePercent}}%</view>
<view class="fragText">香水余量</view>
</view>
<view class="fragPsoReset">
<view bindtap="resetTab" class="fragReset" hover-class="fragModel_hover">
<image class="fragReset_icon" src="/static/image/reset.png" mode="widthFix"> </image>
<view>复位</view>
</view>
</view>
<view class="fragRing">
<canvas id="perfumeBalance" type="2d" style="width: 220px; height: 120px;" ></canvas>
</view>
</view>
3、wxss:
.fragModel_hover{box-shadow: 0.2rem 0 0.3rem #8fd0e0, -0.2rem 0 0.3rem #58bfd1;}
.fragrance_item{position: relative;margin-left: 15px;margin-right: 15px;}
.fragPos{position: absolute;left: 50%; top: 50%;transform: translateX(-50%);text-align: center;}
.fragPos .fragNum{color:#32CD32;}
.fragPsoReset{position: absolute;right: 3px;top: 36px;text-align: center;}
.fragPsoReset .fragReset{display:inline-block;padding:8px 13px;background-color: rgba(50,80,80.68);border-radius: 15px;transition: all .3s ease-in;font-size: 12px;}
.fragPsoReset .fragReset_icon{width:22px;height:22px;}
.fragRing{width: 220px;height:120px;margin: auto;}
4、js:
let perfumeNum = 1.5;
Page({
data: {
perfumePercent: 0, // 香水余量
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
let that = this;
// 香水余量圆环
const query = wx.createSelectorQuery()
query.select('#perfumeBalance') .fields({ node: true, size: true }).exec((res) => {
that.initRing(res);
})
},
// b、香水余量
initRing(res) {
let that = this;
const canvas = res[0].node
const ctx = canvas.getContext('2d');
const dpr = wx.getSystemInfoSync().pixelRatio // 设备像素比
canvas.width = res[0].width * dpr
canvas.height = res[0].height * dpr
ctx.scale(dpr, dpr);
var circleR = 220 / 2; // 画布的一半,用来找中心点和半径
ctx.translate(0, 0); // 定义起始点
function draw() {
ctx.clearRect(0, 0, canvas.width, canvas.height);
// 取色圆环
ctx.beginPath();
ctx.strokeStyle = '#fff';//transparent
ctx.lineWidth = 12;
ctx.lineCap='round' // 设置圆环端点的形状
ctx.arc(circleR, circleR-10, circleR - 35, Math.PI, 2 * Math.PI, false);
ctx.stroke();
ctx.closePath();
console.log("香水余量")
// 进度_香水余量
ctx.beginPath(); // 起始一条路径,或重置当前路径
ctx.lineWidth = 6; // 线条宽度
ctx.lineCap='round' // 线条的结束端点样式
ctx.arc(circleR, circleR-10, circleR - 35, Math.PI,perfumeNum * Math.PI, false);
ctx.strokeStyle = "#00CED1";//transparent
ctx.stroke();
canvas.requestAnimationFrame(draw);
}
draw();
},
// 复位
resetTab(){
let that = this;
perfumeNum = 2; // 香水余量为100%
that.setData({
perfumePercent: 100,
})
},
})
版权声明
本文为[逸曦穆泽]所创,转载请带上原文链接,感谢
https://blog.csdn.net/qq_41408081/article/details/124328267
边栏推荐
- Hyperscan -- 2 compilation
- 浅析一下隧道代理IP的优缺点。
- MySQL active / standby configuration binary log problem
- Common formatting problems after word writing
- 89 logistic regression user portrait user response prediction
- Find the largest number of two-dimensional arrays
- Network jitter tool clumsy
- 2022.4.10-----leetcode. eight hundred and four
- 005_redis_set集合
- Log4j2 configuration
猜你喜欢
从开源爱好者到 Apache 董事,一共分几步?
89 logistic回歸用戶畫像用戶響應度預測
什么是bgp服务器,有哪些优势?
leetcode:27. 移除元素【count remove小操作】
Communication summary between MCU and 4G module (EC20)
What is a dial-up server and what is its use?
What categories do you need to know before using proxy IP?
006_redis_SortedSet类型
Leetcode40 - total number of combinations II
[tutorial] how to use GCC "zero assembly" for white whoring MDK
随机推荐
ESP32蓝牙Bluetooth Controller API介绍
2022.4.10-----leetcode. eight hundred and four
配置iptables实现本地端口转发的方法详解
leetcode:27. 移除元素【count remove小操作】
【dpdk】10. Dpdk DNS learning notes
Under the pressure of sales, domestic mobile phones began to reduce prices, but they haven't put down their final face
BGP服务器在什么业务场景会被用到?
从开源爱好者到 Apache 董事,一共分几步?
89 régression logistique prédiction de la réponse de l'utilisateur à l'image de l'utilisateur
什么是bgp服务器,有哪些优势?
2022.4.22-----leetcode. three hundred and ninety-six
Is it better to use a physical machine or a virtual machine to build a website?
App optimization and advanced scoreboard Part 2 [Mui + flask + mongodb]
2022.4.22-----leetcode.396
【Chrome扩展程序】content_script的跨域问题
Echo "new password" |passwd -- stdin user name
Flink real-time data warehouse project - Design and implementation of DWS layer
[Leetcode每日一题]396. 旋转函数
Leetcode46 Full Permutation
Basic knowledge of software testing, you can meet the interviewer after reading it