とりあえず、やってみる。

よくわからんけど、やってみる。とりあえず、やってみる。

Canvas初心者が雪を降らせてみた

おはようございます😊まおです!
今週はいつもと違って、ただの画面を作りました!!w


ずっと使ってみたいと思っていたCanvas APIを使ってみました!!
いいから早く画面とソースだけよこせってこともあると思うのでこちらです💁‍♀️w↓↓


雪が降る画面


■全画面はこちら

https://tonamao.github.io/Snow/ f:id:tonamao:20190223160745p:plain

■コードはこちら

See the Pen Snow by tonamao (@tonamao) on CodePen.



Canvas API


Canvas API画面に図形を描画できる機能です。
Canvas APIってのは俗称なのかな~🤔

言語としては、HTMLとJavaScriptを使います。
HTMLのcanvasタグをJavaScriptで操作していく感じです。


詳細は↓↓↓のURLとかとても参考になりました!(多分非公式ですが...)
http://www.html5.jp/canvas/ref.html


たいぶ見切り発車で作りましたが、なんとか一週間でできてよかったです!!
冬ということにちなんでの「雪」でしたが、ギリですかね...w

これで少しはCanvas APIに慣れたかな~




下記、今回の実装のポイントだけ簡単に書きました。

Canvasの縦横比率がおかしい


ここにアプリを載せるとき、スタイルの設定を分業させていて
別途CSSファイルを作ってました。
今回も同様にCSSファイルを別途作成してました。

そこで試しに正方形を描画してみたところ...
縦長の長方形になってしまいました...!!!


原因はcanvasのwidthとheightの設定にあるんだとか...!?

styleのwidth、heightではなく、属性のwidth、heightで設定しなければならない!



???





まあ、下記を見てください。

■styleで設定

<canvas style="width: 500px; height: 500px;"></canvas>


■属性で設定

<canvas width="500px" height="500px"></canvas>



後者の属性で指定してあげないと、canvas自体のサイズを変更することはできないようでした。

属性とスタイルって違いがあったのか~(;'∀')w



JavaScriptのclassを使ってみた


JavaScriptの知識はほぼ皆無です、すみません(-_-;)。。
今回「雪」を作るのに、一粒一粒の設定を行っているわけですが、
こいつらをクラスみたいに持てないのかな~と思って調べていたところ
JavaScriptにclassってないイメージでしたが、2015年頃に追加されてたみたいですね~(いつの話...w

■class定義

class Snow {};

こんな感じで書けます。

■コンストラク

class Snow {
 constructor(){};
};

使うときはnewすればOK!
■classを使う

new Snow();



今回のコードも見様見真似、調べた知識をもとにclassを使って実装しております!

こんな感じで使えばいいのかな~
勉強になりました。




おまけ~NG集~


作成段階でミスったやつを載せてみますw

■雪が伸びていく...
f:id:tonamao:20190223171541p:plain

■雪が消えていく...
f:id:tonamao:20190223171536p:plain



ちなみにjQueryで一発で雪を降らせるプラグインがあるんだとか...(; ^ ー^)

以上ですwww