ボタンをクリックして画像と文字を入れ替える

こちらのサンプルは、「ボタンをクリックして画像を入れ替える」サンプルの発展版です。
まず、順序としてそちらから見ていただいたほうが、分かりやすいかと思います。
見た方でしたらそのままお進みください。


・・・あの、出口にはまだ行かないでください。

という事で、画像を入れ替える方法は省いて、文字の入れ替えについて進めていきます。
いつものように、最初にサンプルをご覧ください。

サンプル
■ここに注目してください!!
豊平町 雪の写真

どうですか?文字が変わりましたね。
え?文字は変わったけど、画像は使いまわしですって?
そんな細かいところは放っておいてください。

それでは、実際のソースを見てください。

ソース
<HTML>
<HEAD>
<SCRIPT Language="JavaScript">
<!--
var picNum=1;
var imgvalue=3;  //画像数
var imgPath=Array(imgvalue);  //画像のパス用の配列
var imgExplain=Array(imgvalue);  //画像説明用の配列

for (var i=0; i<imgvalue ; i++) {
  imgPath[i]=new Image();
}
/*画像を増やす場合は、変数「imgvalue」の値を変更して、「imgPath」に画像のパスを足していく*/
imgPath[0].src = "images/sample03.jpg";
imgPath[1].src = "images/sample04.jpg";
imgPath[2].src = "images/sample05.jpg";

/*画像の説明やタイトルを入力*/
imgExplain[0]="<FONT SIZE='-1'>■ここに注目してください!!</FONT>";
imgExplain[1]="<FONT SIZE='-1'>○どうです?変わりましたか?</FONT>";
imgExplain[2]="<FONT SIZE='-1'>■簡単に変えることが出来るんですよ!!</FONT>";

function changePic(picCount) {
  picNum+=parseFloat(picCount);
  if(picNum==0) {
    picNum+=1;
  } else if(picNum>imgvalue) {
    picNum-=1;
  } else {
    document.MainPic.src=imgPath[(picNum-1)].src;
    if(document.getElementById){
      document.getElementById('changeStr').innerHTML=imgExplain[(picNum-1)];
    } else if(document.all){
      document.all('changeStr').innerHTML=imgExplain[(picNum-1)];
    } else if(document.layers) {
      with(document.layers['changeStr'].document){
        open();
        write(imgExplain[(picNum-1)]);
        close();
      }
    }
  }
}

-->
</SCRIPT>
</HEAD>
<BODY>
<TABLE>
  <TR>
    <TD COLSPAN="2">
      <DIV ID="changeStr"><FONT SIZE="-1">■ここに注目してください!!</FONT></DIV>
    </TD>
  </TR>
  <TR>
    <TD COLSPAN="2">
      <IMG SRC="images/sample03.jpg" ALT="豊平町 雪の写真" NAME="MainPic">
    </TD>
  </TR>
  <TR>
    <TD>
      <INPUT TYPE="button" VALUE="BACK" onClick="changePic('-1')">
    </TD>
    <TD>
      <INPUT TYPE="button" VALUE="NEXT" onClick="changePic('1')">
    </TD>
  </TR>
</TABLE>
</BODY>
</HTML>


今回太字で表示されている個所が「クリックして画像を入れ替える」サンプルから追加した部分です。

皆さん、約束を守られてちゃんと「クリックして画像を入れ替える」サンプルからご覧になったと思いますので、追加した個所のみ説明させていただきます。
本当は1から説明するのが面倒くさいんでしょ?と思われた方は、心理分析官になれるかもしれません。
冗談ですので、本気にしないでください。

onClickイベントの「changePic(value)」は変えていません。
なるべく、そのまま流用できるようにしているつもりです。
HTML内の変更箇所は<DIV>タグを追加して、そのDIVにIDとしてchangeStrとあまりにも分かりやすい名前を与えている部分です。
要するに、このchangeStrの中身を書き換えてやるだけです。

その時に使うのが、innerHTMLというプロパティです。
手段さえ分かれば、後は実行に移すだけです。
JavaScriptの中で、新たにimgExplainという配列を作成して、その中に画像番号に対応したメッセージ(タイトル)を入れてあげます。
後は、ゴチャゴチャ書いてますが、結局innerHTMLを利用して、実際にchangeStrの中身を置き換えているだけです。


これで簡単ですが、一応アルバムらしきものが出来上がると思います。
残りの部分は皆様のセンスとデザイン力でカバーしてください。


▲BACK


IT SOHO CLUB