(ちょっとメモ)CanvasサイズをCSS3のvw, vhで取得してみたけど...

最終更新日:2019年02月06日  (初回投稿日:2015年07月04日)

先日アップした「[69-12] canvasをサイトの背景に使おう」で、
Canvasのサイズをブラウザ ウィンドウサイズと一致させるためには、
Canvasの親要素にdivを用意し、そのdivはCSSでフルサイズ指定。Canvasサイズはその親のdivから取得するのが共通の方法みたい」と書きました。

そこに「width:100vw; height:100vh」でいけるんじゃないかと情報をいただき、
早速試してみました。

vw, vh は、CSS3での新しい単位
「v」は「Viewport」の頭文字。ビューポートとはデバイスの表示領域のことです。
1vw = ビューポートの幅の 1/100(100vwで横幅いっぱい)
1vh = ビューポートの高さの 1/100(100vhで高さいっぱい)です。

確かに親のdivなんかなくても Canvasのサイズ取得はできました
(それだけでも画期的か)
しかし、描画が変にボケてしまうんです。小さいものを拡大したようなボケ方で。残念!
Canvasの描画部分は、座標や幅・長さなどはピクセル単位なのですが、これが、vw, vh単位に影響されるのか、ビューポートへの割合に変化するようです。(それでなぜボケるのかは不明ですが)

サイズ取得はできるのに、描画部分が「ボケ」て使い物にならない

サンプルはこちらです。Canvasがちゃんと背景になっていますが、描画がボケボケ。
描画部分は「サンプル2」を流用しています。
Canvasをサイトの背景にしよう:サンプル番外編

こちらが「サンプル2」。ラインがクッキリ。
Canvasをサイトの背景にしよう:サンプル2

サンプル2」の描画部分のソースをそのまま流用した時点では、
このように背景が白くとんでいました。

ですが、少しラインらしきものも現れます。
「ctx.globalCompositeOperation = "lighter"」の影響で、ラインの幅が太すぎて重なり部分が多くて、全体に白くとんでいるんだと思われます。

ラインの幅の数値を少なくしたら、冒頭の「サンプル番外編」のサンプル表示になりました。そこで、単位がピクセルでなく表示領域に対する割合になったのではないかと思った次第です。

ラインの幅は、サンプル2では「150」にしていました。150pxのつもりで指定していますが、これを150vw(またはvh)で解釈されたのではないか?と。
「30」にしたら、そこそこ見られるようになりました。

ただ、単位が変わったからといって、なぜボケるのか?
小さく作って拡大描画しているからボケるんだと思うけど、どんな数値で描画して何を基準に拡大率を決めているのかが、サッパリ。
あれこれいじってみましたが、どうにも調整できず、あきらめました。
結局、親のdivのサイズをピクセルで取得して、Canvasサイズに当て込む方法が、今のところスタンダード というか「実用的」だと思います。

そもそも、CanvasをCSSで親のbodyに対して縦横100%に指定しても、描画コンテキストがあると描画できなかったため、仲介に親のdivを設けたのでした。
ということは「Canvasサイズはピクセルで取得しなければならない」ということじゃないかな。
...とにかく、もっと簡単にサイズ取得ができるといいのですが。

関連記事
このエントリーをはてなブックマークに追加

やる気を保つためにランキングに参加しています。
応援してくださると すっごいやる気を出します! (笑)

初心者にも使いやすい(と思う)レンタルサーバー

「初心者ですがレンタルサーバーはどこがいい?」というご質問をよくいただきます。
自由にファイルをアップロードできる自分のサーバがあると便利ですよね。ローカル環境じゃなくサーバ上で試してみたい時がありますからね。
私が使っているのは、 スターサーバーロリポップ!です。どちらも管理画面がわかりやすく、マニュアルも充実していて、料金も安い。どちらもライトプラン以上で WordPress が使えます。
初心者が始めやすいサーバだと思います。

ちょっと料金は高いけど、さくらのレンタルサーバや、エックスサーバー は、やはり老舗なのでおすすめです。
両方とも高スペックでコスパが良く、老舗でユーザーが多いので、質問する場がたくさんあります。初心者だけど仕事でサーバが欲しい場合は、安心なのではないかと思います。

スポンサーリンク

コメントの投稿

ご注意:メールアドレスは書かないで
「コメントを送信する」ボタンを押した後の「確認画面」で、メールアドレス・URL などを入力できるようになっており、メールアドレス・URL は、そのままオートリンクになる仕様です。
当方でメールアドレスだけ削除することも、メールアドレスを非公開にすることもできません
メールアドレスは書かないでください。詳しくはこちらにまとめましたのでご覧ください。

スポンサーリンク
最新記事
Category
オススメの本
Links
Calendar
11 | 2023/12 | 01
- - - - - 1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31 - - - - - -
Archive
Profile

yuki★hata

Author : yuki★hata
せめて月1回の更新をめざします~。

メールフォームはこちら

スポンサーリンク
スポンサーリンク
Copyright © ほんっとにはじめてのHTML5とCSS3 All Rights Reserved.