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を除くすべての対応ブラウザでは、2つの黒い重なり合う長方形が表示されます。

ここで問題となるのは、これがIE10のバグなのか、それとも標準に厳密に準拠しているため、実際に予想される動作であり、他のすべてのブラウザーで機能することです。もしそうなら、これを行う正しい方法は何でしょうか?

4

3 に答える 3

2

この明らかな IE10 のバグを回避する方法の 1 つは、四角形を 1 つずつクリアすることです。1 つの利点: クリップを設定する必要がないため、高速です。

于 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 に答える