ホームページ作成/画像の表示・活用 (HTML,CSS,JavaScript)

JavaScriptで画像のスライドショーを作成する方法(4ページ目)

一定秒数ごとに自動的に画像とキャプションが切り替わるスライドショー機能の簡単な作り方を解説。HTMLで画像とキャプションの表示空間を用意し、CSSで装飾を加え、JavaScriptで指定時間ごとに表示内容を切り替えることでスライドショーを作成する方法を、動作サンプルと共にご紹介。一時停止ボタンも作成して、好きな画像をじっくり鑑賞できるスライドショーです。

西村 文宏

執筆者:西村 文宏

ホームページ作成ガイド

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. 画像と一緒にキャプションも切り替えるスライドショーの作成方法」を見ていきましょう。
  • 前のページへ
  • 1
  • 3
  • 4
  • 5
  • 8
  • 次のページへ

あわせて読みたい

あなたにオススメ

    表示について

    カテゴリー一覧

    All Aboutサービス・メディア

    All About公式SNS
    日々の生活や仕事を楽しむための情報を毎日お届けします。
    公式SNS一覧
    © All About, Inc. All rights reserved. 掲載の記事・写真・イラストなど、すべてのコンテンツの無断複写・転載・公衆送信等を禁じます