HTML要素 ・ メディア

<canvas>

スクリプトで描画する領域

JavaScriptを使って、図形・グラフ・アニメーションなどを描くための領域です。canvas だけでは何も表示されません。

種類
インライン要素(置換要素)
終了タグ
必須
主な属性
width・height
01

サンプルコード

HTML
1<canvas id="chart" width="300" height="120">
2 売上の棒グラフ
3</canvas>
4<script>
5 const ctx = document.getElementById('chart').getContext('2d');
6 const data = [40, 70, 55, 90];
7 data.forEach((v, i) => {
8 ctx.fillStyle = '#b68235';
9 ctx.fillRect(20 + i * 70, 110 - v, 40, v);
10 });
11</script>
CSS
1canvas {
2 border: 1px solid #ddd;
3}
02

実行結果

ブラウザでの表示
03

解説

canvas は、JavaScriptで絵を描くための「キャンバス(画用紙)」です。getContext('2d') で描画用の道具を取り出し、四角形や線、文字などを描きます。

width と height 属性で描画領域の大きさを決めます。CSSで大きさを変えると、絵が引き伸ばされてぼやけることがあります。

描いた内容は画像として扱われ、中の文字や図形を読み上げソフトが理解することはできません。タグの間に代わりの説明を書いておきます。

04

応用例・注意点

よく使う描画メソッド

メソッド説明
fillRect(x, y, w, h)塗りつぶした四角形を描く
strokeRect(x, y, w, h)枠線だけの四角形を描く
fillText(文字, x, y)文字を描く
beginPath() / arc()円や曲線を描く
clearRect(x, y, w, h)指定範囲を消す

円を描く

arc で円の道筋を作り、fill で塗りつぶします。

HTML
1<canvas id="c" width="100" height="100"></canvas>
2<script>
3 const ctx = document.getElementById('c').getContext('2d');
4 ctx.beginPath();
5 ctx.arc(50, 50, 40, 0, Math.PI * 2);
6 ctx.fillStyle = '#e1ad66';
7 ctx.fill();
8</script>

注意点

  1. 01アイコンや図など、拡大しても劣化させたくない絵は svg のほうが向いています。
  2. 02canvas の内容は読み上げられません。重要な情報は文章でも伝えます。
↑↓ 選択Enter 移動Esc 閉じるCtrl K⌘K で開閉