我在使用 HTML Canvas“手工制作”的简单圆环图上有一个奇怪的渲染问题。它从 iOS14 开始,我可以在我的 iPhone 8 上看到它。
我不知道其他设备是否有这个问题,从 chrome 开发工具和 iPhone 11 Pro 模拟器我没有。
https://codepen.io/emish89/pen/bGemWKN
const value = 50;
const circle = document.getElementById("victories-canvas"),
context = circle.getContext("2d"),
positionX = circle.width / 2,
positionY = circle.height / 2,
degrees = value * 3.6,
circleRadius = 80,
innerCircleRadius = 65,
startAngle = (Math.PI / 180) * 270,
endAngle = (Math.PI / 180) * (270 + degrees);
context.lineCap = "butt";
context.beginPath();
context.strokeStyle = "#000";
context.lineWidth = "15";
context.arc(positionX, positionY, circleRadius, startAngle, endAngle);
context.stroke();
context.beginPath();
context.arc(positionX, positionY, innerCircleRadius, 0, 2 * Math.PI);
context.fillStyle = "#D8FF53";
context.fill();
<canvas id='victories-canvas' width='175' height='175' />
我附上了一支笔,我在其中创建了问题的情况。如果值(JS 中的第一行)高于75,您将开始看到奇怪的故障。(下图)
我对其进行了测试,似乎与circleRadius属性有关,在 78 岁以下,在我的特定情况下你没有问题。
我不知道我的代码中是否有我不理解的问题(但多年来一直运行良好)或其他问题。
非常感谢所有的贡献。