よくWEBページなどでファイルをダウンロードしたり、何かの処理を待っている間に表示される「プログレスバー」ですが、HTML5では「progress」タグを利用することで簡単に実現できます。
プログレスバー(progres)タグの属性
HTML5のプログレスバー(progres)タグですが、属性には以下のものがあります。
| 属性 | 値 | ||
|---|---|---|---|
| value | 現時点の進捗状況 | 数値 | 0以上 ~ max属性値以下(浮動小数点数) |
| max | 全体の作業量 | 数値 | 0より大きい値 (浮動小数点数、初期値は 1) |
プログレスバー(progres)タグの使い方
プログレスバー(progres)タグの使い方は上記の属性を指定して利用します。
<progress value="0" max="100">0%</progress>
これで
のようにプログレスバーが表示されます。
このプログレスバーにタイマーで進捗状況を表示する処理をJavascriptで書けばよいと言うことで実装すると
<!DOCTYPE html>
<head>
<script>
var progresValue ;
var intervalID ;
// プログレスバー表示開始
function startProgress( ProgresID ){
progresValue = 0;
intervalID = setInterval( updateProgress, 50, ProgresID ) ; // 50msごとのプログレスバー更新タイマー
}
// プログレスバーを更新する
function updateProgress( ProgresID, ButtonName ){
progresValue += 1 ; // プログレスバーの進捗値を更新
document.getElementById( ProgresID ).value = progresValue;
document.getElementById( ProgresID ).innerText = progresValue + "%" ;//HTMLフォールバックコンテンツ設定
// 最大値まで達したらタイマーを解除
if( progresValue == 100 ){
clearInterval( intervalID ) ;
}
}
</script>
</head>
<body>
<progress id="ProgressBar" value="0" max="100">0%</progress>
<br><input type="button" onClick="javascript:startProgress( 'ProgressBar' );" id="startButton" value="開始!!" />
</body>
</html>
これで「開始!!」ボタンを押せば50msごとにプログレスバーの進捗が更新されて行きます。
HTMLフォールバックコンテンツとは
指定したタグをサポートしていないブラウザで表示された際に描画される値のこと。
指定したタグをサポートしていないブラウザで表示された際に描画される値のこと。
属性を指定しないプログレスバー(progres)タグ
以下のようにプログレスバー(progres)タグの属性をしていしないで生成すると
<progress id="ProgressBar1">0%</progress>
進捗が左右に動くプログレスバーが作成されます。
まとめ
HTML5のプログレスバー(progres)タグを利用すると簡単にユーザーに処理の進捗を視覚的に示すことができます。
以上、HTML5で進捗状況を表示する「プログレスバー(progress)」タグの使い方でした。
