クリックで画像のサイズを変更する(トグル)

説明

クリックで画像のサイズを変更するには、あらかじめスタイルシートで小さいサイズのクラスと大きいサイズのクラスを定義しておきます。現在適用されているスタイルシートのクラスをclassNameプロパティから読み出し正規表現を使って置換します。
直接スクリプトで画像のサイズを示すスタイルシートのwidth、heightプロパティを操作することもできます。ただし、文書構造と装飾、動作を分離する方が好ましいため、サンプルのようにスタイルシートのクラスを定義して切り替える方がベストです。この方法であればサイズを変更する場合もスクリプトを変更する必要がありません。
JavaScriptテクニック ブック  詳しい解説などはJavaScriptテクニック ブックを参照してください。

サンプルコード [実行]

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
<title>JavaScript Sample</title>
<link rel="stylesheet" type="text/css" href="main.css" media="all">
<script type="text/javascript" src="main.js"></script>
</head>
<body>
<h1>クリックで画像のサイズを変更する</h1>
<div id="photoAlbum">
<img src="images/DSC0001.jpg" class="photoSmall frame">
<img src="images/DSC0103.jpg" class="photoLarge frame">
<img src="images/DSC0280.jpg" class="photoSmall frame">
</div>
</body>
</html>

window.onload = function(){
var root = document.getElementById("photoAlbum");
var imgTag = root.getElementsByTagName("img");
for (var i=0; i<imgTag.length; i++){
imgTag[i].onclick = function(){
var cName = this.className;
if (cName.match(/photoSmall/)) {
this.className = cName.replace(/photoSmall/, "photoLarge");
return;
}
if (cName.match(/photoLarge/)) {
this.className = cName.replace(/photoLarge/, "photoSmall");
return;
}
}
}
}