CSSでキャンバスのサイズを定義する必要はありません。これは、「真」のサイズから拡大縮小することしかないからです。キャンバスの属性は常にwidth
とheight
です。
しかし、そのように親のサイズを定義することはできません。
// javascript pseudocode
canvas.width = theCanvasParent.clientWidth; // or whatever attribute it is, I'd reccomend putting all of those things in one giant container div
canvas.height = theCanvasParent.clientHeight;
ほとんどのブラウザが行うので:あなたがしなければならないとしているセットアップ時にコードでdivの中にキャンバスをラップし、100%(またはものは何でもしてください)にdiv要素のCSSの幅/高さを設定
親divがサイズを変更したときにイベントを発生させない場合、divでサイズが変更されたかどうかをタイマーで確認するだけで半分ごとにタイマーを確認するだけです。それがある場合は、それに応じてキャンバスのサイズを変更します。
しかし、イベントがあります。ページの設定方法によっては、このトリックを行う可能性があります。
ブラウザウィンドウのサイズが変更された場合のみ、Firefox、Opera、Google Chrome、Safariでは、イベントが発生します。
Internet Explorerでは、ブラウザウィンドウまたは要素のサイズが変更されると、onresize
イベントが発生します。
したがって、divのサイズを変更する唯一の方法は、ウィンドウのサイズを変更することであり、onresizeはうまくいきます。それ以外の場合は、キャンバスのサイズとdivのサイズが異なるかどうかを定期的に確認するタイマーが必要です(そうであればキャンバスのサイズを変更する)。
絶えずチェックタイマーがMozillaのBepsinチームがやったことである(ベスピンがSkywriterになったし、すべてのキャンバスの使用を落とし、エースプロジェクトと合併前)
ewwwwwwwwを「0.5秒ごとにチェックし、」... – quemeful