HTML5のキャンバスにタイマーを使って描画を行います。
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.0; user-scalable=0;" /> <title>タイマーによる描画</title> <script type="text/javascript"> // キャンバス var canvas = null; // コンテキスト var ctx = null; // イメージ01 var img01 = null; var img02 = null; // イメージ番号 var imgNum = 0; // タイマー var timer1 = null; /* タイマー */ function OnTimer() { // 描画位置をランダムに決める var posX = Math.random() * canvas.width; var posY = Math.random() * canvas.height; var imgNum = 1 + parseInt(Math.random() * 28 + 0.5); // 拡大率をランダムに決める var zoom = 1 + Math.random() * 2; // 画像上の描画位置を算出 var imgX = parseInt(imgNum % 10) * 16; var imgY = parseInt(imgNum / 10) * 16 + 16; var imgW = 16; var imgH = 16; var img = img01; var imgDrawW = imgW * zoom; var imgDrawH = imgH * zoom; var imgPosX = posX - imgDrawW / 2; var imgPosY = posY - imgDrawH / 2; // イメージの描画 ctx.drawImage( img , imgX // 画像上の描画開始位置X , imgY // 画像上の描画開始位置Y , imgW // 描画する画像の幅 , imgH // 描画する画像の高さ , imgPosX // 描画位置X , imgPosY // 描画位置Y , imgDrawW // 描画幅 , imgDrawH // 描画高さ ); } /* ページロード完了 */ function OnLoad() { // キャンバス取得 canvas = document.getElementById("canvas"); // コンテキストの取得 ctx = canvas.getContext('2d'); // キャンバスのクリア ctx.fillStyle = 'white'; ctx.fillRect( 0, 0, canvas.width, canvas.height ); /* 初期化 */ function OnInit() { // マウスイベントを受け取る canvas.addEventListener( "mousedown", function (e) { var posX; var posY; /* FireFoxの場合は、offsetXとoffsetYがundefinedになる */ posX = (e.offsetX !== undefined) ? e.offsetX : (e.layerX - e.target.offsetLeft); posY = (e.offsetY !== undefined) ? e.offsetY : (e.layerY - e.target.offsetTop); } ); // タイマー開始 timer1 = setInterval("OnTimer()", 1000); } /* イメージの読み込み */ { // 1枚目の読み込み img01 = new Image(); img01.onload = function () { // 2枚目の読み込み img02 = new Image(); img02.onload = function () { // 初期化 OnInit(); }; img02.src = "./img/hidekiti.png"; }; img01.src = "./img/icon.png"; } } </script> </head> <body bgcolor="#c0c0ff" onload="OnLoad()"> <h1>タイマーによる描画</h1> <canvas width="300" height="200" id="canvas" style="background-color:black;"></canvas> <br /> タイマーで定期的にランダムな位置に画像を色々な大きさで描画します。 <br /> <a href="../html5_list.html">戻る</a> </body> </html>