Canvasを覚える!HTMLでアニメーションを作成する方法【初心者向け】

初心者向けにHTML5のCanvasを使ってアニメーションを作成する方法について解説しています。お絵描きアプリなどでよく利用されているCanvasタグですが、アニメーションや図の描写など動きを表現することができます。ぜひご覧ください。

TechAcademyマガジンはオンラインのプログラミングスクールTechAcademy [テックアカデミー]が運営する教育×テクノロジーのWebメディアです。初心者でもすぐ勉強できる記事が2,000以上あります。

アニメーションを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デザインオンラインブートキャンプを開催しています。