最近キャンバスを使って簡単なペインタを作成しようとしました。私はmousedownを使って出発点を捕らえた。 mousemoveで私は開始点から現在の点まで直線を描き、開始点を現在の点に置き換えました。最後に、mouseupでイベントハンドラを削除しました。この解決策はChrome、Firefox、Safariで完全に機能しましたが、IE9でテストしたところ、迷惑なバグに遭遇しました。私が描く線は、mouseupイベントの後にのみ現れます。なぜこれが起きているのか、どのように修正すればよいのでしょうか?キャンバスにIE9のラグがある線を描く
問題を示すための簡単なテストページを追加しました http://kfirg.com/rage/main.htm 長い線や円などを描こうとしてください。クロムでは完全に動作しますが、IE9では狂ったように遅れます。
Notes: この単純な画家のためにjQueryとjCanvasを使用しました。キャンバスAPIを使って直接実装しようとしましたが、同じ問題が発生しました。あなたが実際にIEに比べてより多くのバグを持ってhttp://jsfiddle.net/t5QpN/1/
私は、このデモのオンライン http://ie.microsoft.com/testdrive/Graphics/CanvasPad/Default.html は、マウスのデモを見ていIEの魅力のように動作しますが、そのコードと私の違いを見つけることはできません。誰かが私が違いを理解するのを助けることができれば、それは素晴らしいだろう。 – kfir
キャンバスをクリアすると、周りを遊んだ後に私はそれを見つけました ctx.fillStyle = "rgba(0,0,0,0.05)"; ctx.fillRect(0、0、canvas.width、canvas.height); IEのパフォーマンスがはるかに優れているため、誰もがなぜその理由を説明できますか? 別の方法が実行しています canvas.width = canvas.width; canvas.height = canvas.height; – kfir