【IE6】【IE7】
写真を一覧表示しクリックで拡大表示
最近一眼レフを買ったのでその写真を自分のHPに掲載しようと思い掲載方法を検討しました。参考→「 検討結果ページ」。
JavaScriptとCSSが判れば簡単にできるが、汎用性の高いと思われる掲載方法について作成方法の 説明を前項「画像関連」と内容が一部ダブリますが本ページを新設しました。

1.実行方法
 (1)HTMLファイルを開くと左図のような一覧写真を表示します
   ・表示される写真はjsファイルにJPGファイルリストを記述
 (2)写真をクリックで下図のような原寸の拡大写真が表示されます。
   ・「撮影状況の表示」にチェックで拡大写真に撮影状況も表示されます
    (撮影状況は一般的には不要でありこの機能は通常は削除)



 (3)拡大表示されたWebを右クリックで次の写真を表示します
   ・最終まで表示すると最初に戻る設定になっています

 (4)左クリックで(1)の一覧の画面に戻ります


この写真を一覧表示しクリックで拡大表示のサンプルは「 土手の上の花壇-コスモス」を実行で見えます。
2.作成方法&ソース説明
2-1 表示する写真の保存場所を記載の一覧表を作成
 (1)下記が一覧表jsファイルの例です
 (2)配列photo[**]は写真のファイル名を指定(別フォルダの場合はパス名も記入のこと)
 (3)配列phw[**]は縦写真は"t"(t1は横写真の逆サイズ)、横写真は"y"を指定
 (4)配列phm[**]はコメントを記入
 (5)配列phz[**]は撮影状況(通常は不要あり削除、その場合は各ソースの配列phz部もの削除のこと)
-------------------------------------------------------------------
photo=new Array();var pn=1;
phw=new Array();var wn=1;
phm=new Array();var mc=1;

// **************** 以下に表示の写真を指定 ***************
 = "d01-01.jpg";  phw[wn++] = "y"; phm[mc++] = "ヒナゲシ-1";
photo[pn++] = "d01-02.jpg";  phw[wn++] = "y"; phm[mc++] = "ヒナゲシ-2";
photo[pn++] = "d01-03.jpg";  phw[wn++] = "y"; phm[mc++] = "花菱草";
photo[pn++] = "d01-04.jpg";  phw[wn++] = "y"; phm[mc++] = "かすみ草";
photo[pn++] = "d01-05.jpg";  phw[wn++] = "y";  phm[mc++] = "矢車草";


// *************** 撮影状況 *********************************
phz=new Array();var zc=1;
phz[zc++] = "../h01-01s.gif";
phz[zc++] = "../h01-02s.gif";
phz[zc++] = "../h01-03s.gif";
phz[zc++] = "../h01-04s.gif";
phz[zc++] = "../h01-05s.gif";
---------------------------------------------------------------------
jsファイルの読み込みは以下です
<SCRIPT Language='JavaScript' src='dai1.js'></SCRIPT>

2-2 制御用メインのHTMLファイル
  ソースの主な内容を以下に説明します。
(1) 一覧表示する写真のサイズを指定
  一覧表示する写真のサイズをここで指定します。
// ***** 表示サイズ指定*****
var yoko ="150";
var tate ="113";
//************************
(2) 別ウインドウを開き拡大写真を表示
  ・ここで新ウインドウで拡大表示するHTMLファイル(本例:dai1a.html)(2-3項参照)を開く
  ・その時HTMLファイルの後ろに?+「写真の縦横情報」+写真番号を付けて送付する
function daiph(phno) {
if (document.forms(0).ch1.checked == true) yn="y";
if (document.forms(0).ch1.checked == false) yn="n";

win=window.open("dai1a.html?" + yn + phno,"Myshasin","fullscreen=yes"); 
}
(3) 一覧表示写真の影付き台紙の表示
  ・影付き台紙は下記のようにCSSでimgタグ実行毎に背景を付けています
  ・影付きの絵(本例:kage-150.jpg)(下図参照)は事前に作成すること
  ・paddingで画像の右側(10px)と下側(9px)に余白を加えています
<style type="text/css"><!--
div.images img {
   background-image: url("kage-150.jpg");
   background-repeat: no-repeat;
   background-position: right bottom;
   : 0px 10px 9px 0px;
}
--></style>


(4)テーブルへ一覧表を表示
 ・下記内容は写真5個で1テーブル作成
 ・1個のセル〜にはコメントphm[*j]と写真を表示
 ・縦写真(phw[*]=="t")は横幅を狭く(tate*0.75)して縦に表示
 ・写真クリック(Onclick='daiph(*)')でファンクションdaiph()を実行します
document.write("<div class='images'>");

for(i=1;i<endph+1;i++){
document.write("<table><tr>");
       for(j=0;j<5;j++){
           	if (i+j < endph+1){	
	 	document.write("<td>");
		document.write(phm[i + j] + "<br>");
 document.write("<a href='#' Onclick='daiph("+  (i+j) + ")'>");
if(phw[ i+j]=="t"){
     document.write("&hlt;img src=" + photo[ i+j] + " width=" + tate*0.75 + " height=" + tate + " border='0' &hgt;&hlt;/a&hgt;");
}
if(phw[ i+j]=="t1"){
     document.write("&hlt;img src=" + photo[ i+j] + " width=" + tate + " height=" + yoko + " border='0' &hgt;&hlt;/a&hgt;");
}
if(phw[ i+j]=="y"){
    document.write("&hlt;img src=" + photo[ i+j] + " width= "+ yoko  + " height=" + tate+ " border='0' &hgt;&hlt;/a&hgt;");
}
		document.write("</td>");
           	 }
}
i=i+4;
document.write("</tr></table><br>");
}
document.write("</div>");
document.write("</center>");
-->
</script>

2-3 拡大写真表示用のHTMLファイル
 ・写真リストは<SCRIPT Language='JavaScript' src='dai1.js'></SCRIPT>でメインと同じjsファイルを使用
 ・開いているこのHTMLファイルは左クリックで閉じる(onclick="window.close())
 ・右クリックで通常のショートメニュー禁止(oncontextmenu="return false")
 ・右クリックで(onmousedown=migid)ファンクションmigidを実行
 ・拡大写真はdocument.myimg.src= photo[*]で表示します
 ・メッセージの撮影状況不要の場合はsch0=="y"の列は削除して下さい
<BODY BGCOLOR=#FFFFEE onclick="window.close()" oncontextmenu="return false">
<SCRIPT Language='JavaScript'>
<!--
sch = unescape(location.search);
sch0 =sch.substr(1,1);
sch1 =sch.substr(2,100);
endph=photo.length-1 ;

siz="";
// siz=" width='100%'  height='100%'";
document.write("<center>");
document.write("<img src='kari.jpg' NAME='myimg' border=0"  +  siz + " alt='左:閉じる/右:次へ'>"); 
document.write("<div id='mytitle' style='position:absolute;bottom:1%;right:1%'>");
document.write("</div>");
document.write("</center>");
	no2=sch1;
	phot();

function migid(){
        if(event.button == 2){
                no2++;
               if(no2 > endph )no2=1;
	phot();
        }
}
document.onmousedown=migid;

function phot(){
	document.myimg.src= photo[no2];
if (sch0=="y"){
 document.getElementById('mytitle').innerHTML="<table><tr><td>【"+ no2+ "】"+ phm[no2] + " <img src='"+ phz[no2] + "'</td></tr></table>";
}
else{
 document.getElementById('mytitle').innerHTML="<table><tr><td>【"+ no2+ "】"+ phm[no2] + "</td></tr></table>";
}
}
// -->
</SCRIPT>

3 サンプルファイルのダウンロード
ここでは「土手の上の花壇-コスモス」を参考に説明しましたが、何方も簡単にこの表示が出来るように使用したサンプルファイル をまとめてダウンロードできるようにしました。

写真を一覧表示しクリックで拡大表示の サンプルファイルダウンロード
圧縮ファイル名:phot1.zip
解凍でフォルダ内に、dai1.js(2-1で説明)、dai1.html(2-2で説明)、dai1a.html(2-3で説明)、kage-150.jpg があります

【HOME】  【実用編へ戻る】