「HTML/HTML5」の版間の差分

削除された内容 追加された内容
→‎簡単な動画の例: 不要なコメント除去
199 行
 
実行すると、青い四角が表示され、その青い四角が、画面の左側をスタート地点として、右にむかって動いていく。
 
 
上記コードだと、ブラウザが動いているかぎり永遠に再描画の処理をしてしまいメモリに負担を掛けるので、下記のように clearInterval で適度なところで停止すると良い。
 
 
;コード例
<syntaxhighlight lang="html5">
<!DOCTYPE html>
<html lang="ja">
<head>
<title>簡単なcanvasアニメ</title>
</head>
<body>
<canvas id="canvas" width="600" height="500"></canvas>
<script>
var cvs = document.getElementById("canvas"); // canvas要素の作成
var ctx = cvs.getContext("2d"); // コンテキストの取得 // なお、以降cvsは使わない
 
var count = 0; // 時間を数えるためのカウンター
 
 
var dummy = function draw() { // var でメモリなど確保しないと後工程が上手く行かない。
/* 背景色 */
ctx.clearRect(0,0,600,500); // clearRect プロパティにて範囲指定で消せる
/* 描画オブジェクト */
ctx.fillStyle="#00F";// 青い四角をこれから動かす
ctx.fillRect(50 + count,30, 40, 40); // fillRectで四角を描画できる
if(count < 300){
count++; // 単なるインクリメント
} // if count の終わり
// 追加
if(count > 150){
clearInterval(kakuho);
} // if count の終わり
// 上記を追加
} // function の終わり
 
// 下記コードが追加された
var kakuho = setInterval(dummy,10); // setInterval の終わり // var で確保しないと clear で止まらない場合あり
</script>
</body>
</html>
</syntaxhighlight>
 
実行すると、途中でclearInterval しているので、描画の終了位置が前回と変更して、半分くらい進行した位置で止まるのが確認できるだろう。
 
なお setInterval などはアニメの描画以外の用途にも、使用することができる。図形を描画する用途でないならば、わざわざ canvas タグを使う必要も無いが、この節の範中を超えるので、この節ではアニメ以外の用途については説明を省略する。
 
== ページ内がいくつかの文書に分割される場合 ==