5

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

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

我还创建了一个说明问题的小提琴。在除 IE10 之外的所有支持浏览器上,它都会显示两个黑色重叠矩形。

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

4

3 回答 3

2

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

于 2013-04-05T08:12:36.393 回答
1

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

于 2012-11-28T21:01:45.710 回答
1

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

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

MS 说:“是的,它是一个错误。等待几年我们来修复它。” 对 MS 来说太糟糕了,所有其他浏览器现在都可以工作。

于 2013-04-02T06:21:22.983 回答