Canvasを覚える!HTMLでアニメーションを作成する方法【初心者向け】
初心者向けにHTML5のCanvasを使ってアニメーションを作成する方法について解説しています。お絵描きアプリなどでよく利用されているCanvasタグですが、アニメーションや図の描写など動きを表現することができます。ぜひご覧ください。
TechAcademyマガジンは受講者数No.1のオンラインプログラミングスクールTechAcademy [テックアカデミー]が運営。初心者向けに解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。
アニメーションをWebページで実装するには二つの方法があります。
一つはgifアニメーション画像を読み込む方法。
もう一つは、CanvasというHTML5でアニメーションを描写するための要素を読み込む方法です。今回はそんなHTML5のCanvasについて解説していきたいと思います。
HTMLについてそもそもよく分からないという方は、HTMLとは何なのか解説した記事をまずご覧ください。
なお本記事は、TechAcademyのWebデザインオンラインブートキャンプのカリキュラムをもとに執筆しています。
アニメーションを作成するタグとその書き方
Canvasはまず、HTML内にCanvasタグを用いてアニメーションを描写する範囲を指定します。
<canvas id="Canvas" width="100" height="100"></canvas>
このように指定することによって、idがCanvasの100×100の大きさのCanvasが作成されます。
この範囲内のみ、アニメーションを描写することができます。実際のアニメーションはこのタグを指定し、JavaScriptで動きを書いていきます。

canvasタグを書いてみたんですけど、何も表示されないですねー。

HTML5から追加されたもので、グラフィックやアニメーション、ゲームなどが作れるんだ。

HTMLでもプログラミングのようなことが出来るんですか?

HTMLでは、キャンバスの表示領域を指定するだけで、中身にはJavaScriptを使うんだよ。アニメーションの例を見てみよう!
実際に書いてみよう
それでは実際にCanvasを利用してアニメーションを作成してみましょう。
今回は、四角形を右から左に動かしていく簡単なサンプルを作成していきます。JavaScriptでコードを書いていくため少し難しいかもしれませんが頑張って書いていきましょう。
「sample.html」内で「sample.js」を呼び出すようにしてください。
#sample.html
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <script type="text/javascript" src="sample.js"></script> <style> #canvas{ background:#999; } </style> </head> <body> <canvas id="canvas" width="100" height="100"></canvas> </body> </html>
#sample.js
var can = document.getElementById("canvas"); var ctx = can.getContext("2d"); var count = 0;//アニメーションカウンター var timer = setInterval(function(){ ctx.fillStyle="#fff";//消去時の色 ctx.clearRect(0,0,300,300);//消す ctx.fillStyle="#f00";//塗りつぶし色を赤に ctx.fillRect(30+count,30+count,30,30); count++; if(count>200){ clearInterval(timer); } },100);
HTMLでは、Canvasタグでキャンバスを描写しています。
JavaScript部分ではまず、変数の初期化を行っています。
そのあとrender関数で描写を行い、それを繰り返し呼び出すことで、アニメーションを実現しています。
[PR] HTML/CSSで挫折しない学習方法を動画で公開中
まとめ
今回はHTMLでアニメーションを作成する方法について解説していきました。
HTMLのみでアニメーションを作成するのは不可能ですが、Canvasを使用すれば、アニメーションを実装することができます。
JavaScriptは初めは取っ付きにくいですが、Webデザインをする上で役に立つ知識なので、身につけるようにしましょう。

赤い四角形が動いてる!ゲームみたいですね。ただ、ソースコードが難しいですね。

慣れないと簡単ではないね。getContext関数で、まずは絵を描くための道具箱を持ってきているって考えると良いかも。

四角形が動いているのは、どういう仕組みなんですか?

setInterval関数は、ある時間が過ぎるごとに、指定のプログラムを実行できるんだ。時間ごとに、絵を一旦全部消して、四角形を移動させた絵をもう一度書いてるんだよ。JavaScriptは少し難しいね。
[お知らせ]TechAcademyでは初心者でも最短4週間でオリジナルWebサイトを公開できるWebデザインオンラインブートキャンプを開催しています。