Internet Explorer 10画布剪辑意外行为

时间:2012-11-28 18:30:46

标签: javascript html5 canvas clipping

在html5画布应用程序中,我使用裁剪来重绘画布的受损部分,如下所示:

ctx.beginPath();
ctx.rect(30, 30, 100, 100);
ctx.rect(100, 100, 100, 100);
ctx.clip();
ctx.clearRect(0, 0, 600, 400);

我还创建了一个fiddle来说明问题。在除IE10之外的每个有能力的浏览器上,它将显示两个黑色重叠矩形。

现在的问题是,这是一个IE10错误,还是因为它更贴近标准,实际上是预期的行为,只是运气,它可以在其他所有浏览器中运行。如果是这样,那么这样做的正确方法是什么?

3 个答案:

答案 0 :(得分:2)

这个明显的IE10错误的一个可能的规避是逐个清除矩形。一个优点:它更快,因为它不需要设置剪辑

答案 1 :(得分:1)

你需要调用ctx.fill();最后

答案 2 :(得分:1)

这是IE10中的一个错误。我在这里发布了类似的问题:

https://connect.microsoft.com/IE/feedback/details/782736/canvas-clearrect-fails-with-non-rectangular-yet-simple-clipping-paths

MS说,“是的,它是一个错误。请等几年让我们解决它。”对于MS来说太糟糕了,所有其他浏览器现在都可以使用。