【问题标题】:HTML Canvas lines transparency not working on mobile safariHTML Canvas 线条透明度不适用于移动 Safari
【发布时间】:2019-07-19 06:24:16
【问题描述】:

我在我的网站 (https://framedthread.com) 上使用画布绘制线条,它们是具有透明度的线条,它们在 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);

画布的定位是 position:absolute,但我认为这并不重要。非常感谢您的帮助。我真的没有想法。

【问题讨论】:

    标签: javascript html ios html5-canvas mobile-safari


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-04-30
      • 2016-07-03
      • 1970-01-01
      • 2022-08-23
      • 1970-01-01
      • 2015-06-26
      • 2010-09-25
      相关资源
      最近更新 更多