画像を使わず、JavaScriptで図形が描けると言う<canvas>タグを使って、リニューアル作業の進捗状況を円グラフにしてみました。
これなら進捗状況が進んでも、値を変えるだけで、画像を作る必要がないので楽チンです。
ただし、IE7、IE8はCanvasに対応していないようなので、Googleが提供のExplorerCanvasというJavaScriptライブラリ(excanvas.js)を組み込んでやる必要があります。
Canvasは、円グラフだけでなく、折れ線グラフなんかも描けるようです。
そればかりか、JavaScriptが使えるので動的な画像(アニメーション)を表示させることもできるようです。
私のレベルでは、ひとまずこの程度で満足しております。
しかし、この円グラフを見ると、コンテンツ移管が、まだまだ進んでいないのがバレますね。
こんなテクニックにばかり時間を割いている場合じゃないな。
単調作業でも気合い入れて頑張らないと、リニューアル完了は程遠いです・・・。^^
おそまつなサンプルソース
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Canvasで円グラグ</title>
<!--[if IE]>
<script type="text/javascript" src="_shared/js/excanvas.js"></script>
<![endif]-->
<script language="JavaScript">
<!--
function progressArc(num) {
var imgcanvas = document.getElementById('imgcanvas'+num);
// canvas要素がサポートされているか確認
if (imgcanvas.getContext){
var ctx = imgcanvas.getContext("2d");
// セットする変数
var xPos = imgcanvas.width / 2;
var yPos = imgcanvas.height / 2;
var radius = 80;
var sAngle = 0;
var eAngle = 0;
var colors_a = ["#383", "#C63", "#338"];
var colors_b = ["#CCC", "#DCC", "#CCD"];
var progress = [ 6, 10, 5 ]; // ■ここに進捗率を入力する■
var prog = Math.round( (360/100) * progress[num] );
// 進捗(完了)部分の円弧を描く
sAngle = ( 0 - 90 ) * Math.PI / 180;
eAngle = ( prog - 90 ) * Math.PI / 180;
ctx.beginPath();
ctx.moveTo(xPos , yPos);
ctx.arc(xPos, yPos, radius, sAngle, eAngle, false);
ctx.closePath();
ctx.fillStyle = colors_a[num];
ctx.fill();
// 進捗(未完)部分の円弧を描く
sAngle = ( prog - 90 ) * Math.PI / 180;
eAngle = ( 360 - 90 ) * Math.PI / 180;
ctx.beginPath();
ctx.moveTo(xPos , yPos);
ctx.arc(xPos, yPos, radius, sAngle, eAngle, false);
ctx.closePath();
ctx.fillStyle = colors_b[num];
ctx.fill();
// 進捗%を文字で表示
document.getElementById('imgcanvas_txt'+num).innerHTML = progress[num] + "%";
}
}
function firstTime() {
progressArc(0);
progressArc(1);
progressArc(2);
}
-->
</script>
<style type="text/css">
.progress_arc {
float: left;
width: 180px;
height: 224px;
margin: 0px 0px 5px 15px;
padding: 0px;
border: solid 1px #999999;
}
#imgcanvas_title {
font-size: 14px;
text-align: center;
}
#imgcanvas0, #imgcanvas1, #imgcanvas2 {
margin: 10px 10px 0px 10px;
}
#imgcanvas_txt0, #imgcanvas_txt1, #imgcanvas_txt2 {
font-size: 14px;
text-align: center;
}
</style>
</head>
<body onload="firstTime();">
<div class="progress_arc">
<div id="imgcanvas_title">コンテンツを移管</div>
<canvas id="imgcanvas0" width="160" height="160">
<p>canvas非対応ブラウザかJavaScriptが無効になっています。</p>
</canvas>
<div id="imgcanvas_txt0"></div>
</div>
<div class="progress_arc">
<div id="imgcanvas_title">デザイン改良</div>
<canvas id="imgcanvas1" width="160" height="160">
<p>canvas非対応ブラウザかJavaScriptが無効になっています。</p>
</canvas>
<div id="imgcanvas_txt1"></div>
</div>
<div class="progress_arc">
<div id="imgcanvas_title">ブラッシュアップ</div>
<canvas id="imgcanvas2" width="160" height="160">
<p>canvas非対応ブラウザかJavaScriptが無効になっています。</p>
</canvas>
<div id="imgcanvas_txt2"></div>
</div>
</body>
</html>