A. 画像だけを単独で切り替えるシンプルなスライドショーの完成
これまでに掲載したHTML+CSS+JavaScriptソースを表示すると、以下のように見えます。画像だけを切り替える最もシンプルなスライドショー
実際に動作を試すには、サンプルページ「JavaScriptで作るスライドショーのサンプルA」をご覧下さい。
スライドショーサンプルAのソースまとめ
これまでに記述したソースを一括再掲しておきます。コピー&ペーストして使ってみる際にご活用下さい。■CSSソース:
CSSの記述は必須ではありません。
<style type="text/css"> .showbox { display: inline-block; } .showbox p { text-align: center; } .showbox img { border: 2px solid skyblue; } </style>
■HTMLソース:
<div class="showbox"> <!-- ▼スライドショーを表示する場所 --> <p> <img src="slideshow.jpg" id="slideshow" alt="スライドショー表示領域"> </p> <!-- ▼スライドショーの制御ボタンを表示 --> <p> <input type="button" value="- 開始/停止 -" id="startstopbutton"> </p> </div>
■JavaScriptソース:
以下のJavaScriptソースは、先のHTMLソースよりも後に記述して下さい。先のHTMLよりも前に読み込まれてしまうと動きません。
<script type="text/javascript"> // ---------------------------------------------- // ▼設定:スライドショーで見せたい画像ファイル群 // ---------------------------------------------- var imgset = [ "sky.jpg" , "snowwoods.jpg" , "water.jpg" , "beachsky.jpg" , "greenplain.jpg" , "seashipsky.jpg" /* 最後にカンマは不要 */ ]; // ----------------------------------------------- // ▼関数A:指定画像を順に表示させる // ----------------------------------------------- var counter = 0; function slideimage() { if( counter >= imgset.length ) { // カウンタが画像数よりも大きくなったら0番に戻す counter = 0; } // 対象要素の画像URLを次の画像のURLに切り替える document.getElementById('slideshow').src = imgset[counter]; // カウンタを1増やす counter++; } // ----------------------------------------------- // ▼関数B:スライドショーを制御 // ----------------------------------------------- var slideid = 0; function startstopshow() { if( slideid == 0 ) { // 始まっていなければ始める slideid = setInterval(slideimage,1000); // 1000は切替秒数(ミリ秒) } else { // IDがあれば止める clearInterval(slideid); slideid = 0; } } // ▼ボタンクリックに関数を割り当てる document.getElementById('startstopbutton').onclick = startstopshow; </script>必要なソースは以上です。
■グローバル変数に関する注意:
このスライドショーサンプルAでは、ソースと説明を簡単にするために、同一ページ内にはスライドショーを1個しか掲載しないことを前提にしており、カウント用の変数などはすべてグローバル変数にしています。したがって、このままでは同一ページ内に複数個のスライドショーを設置できません。複数の設置を可能にするソースの書き方等については、最後の「サンプルC」をご覧下さい。
それでは、続いて「B. 画像と一緒にキャプションも切り替えるスライドショーの作成方法」を見ていきましょう。