LoginSignup
27
31

More than 5 years have passed since last update.

HTML canvasを画面いっぱいに表示したい

Last updated at Posted at 2014-09-28

canvasのサイズをwindowサイズに合わせて画面いっぱいに表示させたい。
そんなとき、canvasのサイズ指定をjQueryの.css()を使ってやろうとするとうまくいきません。

具体的に書くと、

HTML:

<div id="wrapper">
    <canvas id="canvas"></canvas>
</div>

というマークアップに対してcanvasのサイズを指定すべく、
windowのloadイベントやresizeイベントが発火したタイミングで

JS:

$( '#canvas' ).css({
    width: $( window ).width(),
    height: $( window ).height()
});

という風に記述したとしましょう。

つまり、マークアップ上では、

HTML:

<div id="wrapper">
    <canvas id="canvas" style="width: XXXpx; height: YYYpx;"></canvas>
</div>

となっている状態です。
この状態でcanvasを動かすと、描画が歪んでしまってうまく表示されません。

どういうことかというと、

canvasのDOMにサイズ指定するには、htmlのattributeに直接widthとheightを記述する必要があるからです。

つまり、以下のような書き方になります。

<div id="wrapper">
    <canvas id="canvas" width="XXX" height="YYY"></canvas>
</div>

これを実現するJavaScriptは以下のようになります。

$( '#canvas' ).get( 0 ).width = $( window ).width();
$( '#canvas' ).get( 0 ).height = $( window ).height();

これで無事正しくcanvasを全画面で描画させることができます。

27
31
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
27
31