android - Firefox for Android 和 HTML5 canvas 透明度错误

标签 android html firefox html5-canvas

考虑这个简单的网页:

<!DOCTYPE html><html>
<head>
    <title>test</title>
    <style type="text/css">
        canvas { border: 1px solid black; }
    </style>
</head>
<body>
    <canvas width="100" height="100" id="the-canvas"></canvas>
    <script type="text/javascript">
        var canvas = document.getElementById('the-canvas');
        var context = canvas.getContext('2d');
        context.fillStyle = 'rgba(0, 0, 255, 0.5)';
        context.fillRect(0, 0, 100, 100);
    </script>
</body></html>

基本上,它只包含一个<canvas/>具有半透明蓝色背景的元素。预期的行为是将其呈现为浅蓝色,因为网页的背景是白色。

它在台式机上呈现良好。

在 Android 上,它也可以很好地呈现,除了 Firefox,在 Firefox 上,它的行为就像 Canvas 下面的页面实际上是..黑色的。 最奇怪的事情是它只有在屏幕上显示 Firefox 界面的任何部分时才表现得像它!

示例如下。

行为良好 - 颜色为淡蓝色。 Firefox 界面的任何部分都不可见。 Good behavior


错误行为——生成的颜色突然变得太暗。请注意,当我扫动屏幕以查看地址栏时,会看到 Firefox 的界面。

Wrong behavior

这是另一个例子;这次我尝试渲染老土的雪动画来庆祝即将到来的圣诞节。为此,我在透明 Canvas 上渲染不透明的小圆圈。左侧版本 - Firefox 界面可见,圆圈有难看的抗锯齿问题;右边的版本 - 向下滚动一点后的同一页面,圆圈正确呈现。

Another example

我尝试使用各种 blending features解决这个问题,但没有成功。

最佳答案

只是想知道这是一个“网络安全”颜色问题!

关于android - Firefox for Android 和 HTML5 canvas 透明度错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20735344/

相关文章:

javascript - Firefox Audiocontext 暂停

android - 项目刷新失败,JetGradlePlugin$_apply_closure2$_closure4

android - 从应用程序主屏幕切换到其他 Activity 时应用程序崩溃

jquery - 固定 Div 在特定点停止 jQuery

html - IE 一直询问是否运行 ActiveX 控件

html - css table-cell 和 vertical align middle 在 firefox 中不起作用

Android 和 Windows 通过蓝牙通信

android - 芝士方 block : enterAlways produces wrong layout

html - 计算子元素的高度

javascript - 为什么我的函数在 setTimeout() 超时之前被调用?