HTML Canvas 线条透明度不适用于移动 safari

HTML Canvas lines transparency not working on mobile safari

我在我的网站 (https://framedthread.com) 上使用 canvas 绘制线条,它们是透明的线条,在 android 和 windows 上显示良好,但在移动 safari 上他们没有。绘制了线条,但未应用透明度,这导致线条完全变暗,最终图像过于暗。

这是我用来绘制线条的代码:

var canvas_string = document.getElementById('homepage_portrait_string');
var ctx_string = canvas_string.getContext('2d');
canvas_string.width=601;
canvas_string.height=751;

var i=0;
var number_of_lines= lines_instructions.length;
setTimeout(function(){

    window.draw_function_interval=setInterval(function(){ 

        //Draw best line in string model
        ctx_string.beginPath();
        ctx_string.lineWidth = 0.2;
        ctx_string.strokeStyle = 'rgba(0,0,0,50)';
        ctx_string.moveTo(nail_x_coordinates[lines_instructions[i]], nail_y_coordinates[lines_instructions[i]]);
        ctx_string.lineTo(nail_x_coordinates[lines_instructions[i+1]], nail_y_coordinates[lines_instructions[i+1]]);
        ctx_string.stroke();
        ctx_string.closePath();
        i++;
        if(i==number_of_lines){
            clearInterval(window.draw_function_interval);
        }

      }, 6);

}, 1350);

canvas 被定位为 position:absolute,但我认为这无关紧要。非常感谢您的帮助。我真的没脑子了。

rgba 中的 alpha 值介于 0 表示完全透明和 1 表示不透明之间。如果您想要 50% 的透明度,请尝试将 rgba 更改为 rgba(0,0,0,0.5)。

但即便如此,根据这个 post rgba 在浏览器上的呈现方式也不同。