// pages/canvas/canvas.js
Page({
data: {
value:0.8
},
drawProgress() {
const query = wx.createSelectorQuery().in(this);
query
.select("#quan")
.fields({
node: true,
size: true,
})
.exec((res) => {
const node = res[0].node;
const ctx = node.getContext("2d");
const dpr = wx.getSystemInfoSync().pixelRatio;
node.width = res[0].width * dpr;
node.height = res[0].height * dpr;
ctx.lineWidth = 10;
ctx.lineJoin = "round";
ctx.beginPath();
ctx.moveTo(
node.width / 2,
node.height / 2 - (node.width / 2 - 10)
);
ctx.arc(
node.width / 2,
node.height / 2,
node.width / 2 - 10,
Math.PI * 1.5,
Math.PI * (Number(this.data.value) * 2 + 1.5)
);
const gradient = ctx.createConicGradient(
Math.PI * 3.5,
node.width,
node.height / 2
);
gradient.addColorStop(0, "#29ecff");
gradient.addColorStop(0.25, "#febb78");
gradient.addColorStop(0.5, "#ff5883");
gradient.addColorStop(0.75, "#8e80ff");
gradient.addColorStop(1, "#32e8ff");
ctx.strokeStyle = gradient;
setTimeout(() => {
ctx.stroke();
}, 1500);
});
},
})
})
具体代码有点多,主要是进度条这一段没生效。
开发者工具效果图:,预览效果图:,真机调试效果图:;同时真机调试会报错:,查了很多地方,许多人有这样的情况,想问问官方到底咋回事?同时也想问问发生了解决了的大佬,如何解决的。
我debugger 打断点发现代码执行到这个位置就结束了,并没有走进方法内,如图:.
就希望大佬能给指点一下,难道是多canvas不兼容吗?
canvas 2d不支持真机,请使用预览调试