小提琴, 我试图把它缩小到最重要的地方。我有一个 272 度的画布弧,通过偏移完成。当绿色动画弧度达到 135 度时,在 Chrome 和其他浏览器中看起来像这样:
通常输入的值不会完全一样,所以它会很快跳过故障。但如果我能完全摆脱它,那将是非常惊人的。我对画布还很陌生,不知道该尝试什么。谢谢!!
相关JS:
function setGauge(valForGauge, val, distance){
var time = 500;
time = time / (Math.abs(valForGauge - preValForGauge));
if (valForGauge > preValForGauge) {
var animate = setInterval(function(){
if (preValForGauge == valForGauge)
clearInterval(animate);
else {
preValForGauge++;
drawValueArc(preValForGauge);
}
}, time);
} else if (valForGauge < preValForGauge) {
var animate2 = setInterval(function(){
if (preValForGauge == valForGauge)
clearInterval(animate2);
else {
preValForGauge--;
drawValueArc(preValForGauge);
}
}, time);
} else if (valForGauge == 0 || valForGauge == preValForGauge) {
preVal = val;
}
}
function drawValueArc(val) {
drawArc(ctx2, 57, 32, "rgb(230, 230, 230)", startRadians, endRadians);
drawArc(ctx2, 57, 31, "#27AE60", startRadians, val);
}
function drawArc(ctx, radius, width, color, start, end) {
ctx.beginPath();
ctx.arc(cx, cy, radius, (startRadians + offset) * deg2rad, (end + offset) * deg2rad, false);
ctx.strokeStyle = color;
ctx.lineWidth = width;
ctx.stroke();