jQuery を使ったスライドショー
webサイトにスライドショーを実装します。
まずはサンプルをご覧ください。↓
5枚の写真が、3秒ごとに入れ替わります。滑らかな仕上がりになっているのがご確認できるかと思います。
jQueryライブラリの読み込み
jQueryを使って実装していきます。コピペで使えるので簡単です!
まずは、jQueryライブラリを読み込みます。
GoogleのCDNにホストされているjQueryのファイルを読み込みます。
↓ こちらのコードを、<head>タグ内に記述します。
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>たった1行です!
様々な読み込み方法を試しましたが、この方法がおすすめです!
スライドショーのサンプルコード
↓ このコードを<body>タグの中に記述します。
<script>
    function slideSwitch() {
    var $active = $('#slideshow img.active');
  
    if ( $active.length == 0 ) $active = $('#slideshow img:last');
  
    var $next =  $active.next().length ? $active.next()
       : $('#slideshow img:first');
  
    $active.addClass('last-active');
  
    $next.css({opacity: 0.0})
       .addClass('active')
       .animate({opacity: 1.0}, 1000, function() {
            $active.removeClass('active last-active');
       });
  }
  
  $(function() {
    setInterval( "slideSwitch()",3000 );
  });
  </script>  外部ファイルで読み込むこともできますが、
今回は分かりやすくするために直接記述にしてあります。
以下のコードですが、「3000」というのは3000ミリ秒なので、
3秒ごとに写真が入れ替わる設定です。5秒にしたい場合は「5000」に
設定するなどしてください。
 $(function() {
    setInterval( "slideSwitch()",3000 );
  });スライドショー用の画像を列挙するHTMLを記述
↓ このコードを<body>タグ内に記述します。
 <div id="slideshow">
    <img src="sample1.jpg" class="active">
    <img src="sample2.jpg"> 
    <img src="sample3.jpg">
    <img src="sample4.jpg">
    <img src="sample5.jpg">
</div>スライドショーとして表示したい画像を列挙します。
お持ちの画像ファイル名を記述してください。
分かりやすくするため、「sample1」~「sample5」にしてあります。
↓ ここで重要なのが、idでslideshow指定がしてあるのと、
「sample1」のclass のactive指定です。
 <div id="slideshow">
    <img src="sample1.jpg" class="active">ここを変えてしまうと、CSSが反映されませんのでご注意を。
スライドの挙動を調整するCSSを記述
CSSは外部ファイルでも指定できますが、
今回は分かりやすくするため、下記のコードを<body>タグ内に記述します。
<style>
#slideshow {
   position: relative;
   overflow   : hidden;
   width:  510px; /* 画像の横幅に合わせて記述 */
   height: 360px; /* 画像の高さに合わせて記述 */
   margin     : 30px auto;      
   background : #f2f2f2;
   border: solid 1px gray;
}
#slideshow img {
   position: absolute;
   z-index: 8;
   opacity: 0.0;
   width      : inherit;
   height     : inherit;
}
#slideshow img.active {
   z-index: 10;
   opacity: 1.0;
}
#slideshow img.last-active {
   z-index: 9;
}
 </style>↓ active指定をした1枚目の画像が、1番上に来るようになっており、
透過せずはっきり見えます。
#slideshow img.active {
   z-index: 10;
   opacity: 1.0;
}slideshow idですが、上下のmarginを30px, 左右のmarginをautoに
設定してあるので、
画像が真ん中に来るようになっており、上から30px下がっています。
背景色や、外枠もお好みで変えましょう。
画像の大きさに合わせて、widthとheightを調整してください。↓
 #slideshow {
   position: relative;
   overflow   : hidden;
   width:  510px; /* 画像の横幅に合わせて記述 */
   height: 360px; /* 画像の高さに合わせて記述 */
   margin     : 30px auto;      
   background : #f2f2f2;
   border: solid 1px gray;
}いかがでしたか?
簡単で、コードも短くシンプルです。
jQueryを使ったスライドショーを是非実装してみてください。
HTMLとCSSだけ!というスライドショーもよく見かけますが、
IEでanimationプロパティが動かなかったりと、様々な問題が出てきますので、
スライドショーの実装はjQueryがおすすめです!

 
  
  
  
  

コメント