为什么iOS在调整大小后无法渲染html5画布?

时间:2014-09-04 19:36:10

标签: javascript ios html5 canvas

我有一个HTML5 Canvas对象,我使用Javascript调整大小。然后我借鉴它。

在iOS上,除非我使用setTimeout延迟绘图,否则图形不会显示。

所以这段代码没有显示......

myCanvas.width = width;
myContext.strokeStyle = '#000';
myContext.moveTo(0, 0);
myContext.lineTo(2000, 2000);
myContext.stroke();

......但这样做:

myCanvas.width = width;

setTimeout(function(){
    myContext.strokeStyle = '#000';
    myContext.moveTo(0, 0);
    myContext.lineTo(2000, 2000);
    myContext.stroke();
}, 100);

两者都适用于桌面浏览器,但不适用于Safari iOS。

造成这种情况的原因是setTimeout是解决问题的最佳解决方案吗?

谢谢,

1 个答案:

答案 0 :(得分:0)

我的错误。结果是setTimeout与它无关。

我发现可能对其他人有帮助的是浏览器中的画布允许的最大尺寸,这在移动浏览器(例如Safari)上非常小。

有关详细信息,请参阅此问题:Maximum size of a <canvas> element

我试图为iPhone制作太大的画布。