無題21

自動切り替えバナーの作成(jQuery)

Webデザイン技能検定2級の受験勉強用に、
画像が自動で切り替わるバナーを作った時の備忘録。


(1)htmlファイルを記述

<!DOCTYPE html>
<html language="ja">

<!-- 文字コードセット -->
<meta charset="utf-8">

<!-- ヘッダ情報 -->
<head>
   <!-- jQuery情報 -->
   <script type="text/javascript" src="jquery/jquery-3.4.1.js"></script>

   <script type="text/javascript"  src="anime.js"></script>
   <!-- CSS情報 -->
   <link rel="stylesheet" type="text/css" href="style.css"/>
</head>
<body>
   <div class="bannerDiv">
       <ul class="bannerUl">
           <li><img src="img/t1.jpg" alt="banner_1" title="banner_1"></li>
           <li><img src="img/t2.jpg" alt="banner_2" title="banner_2"></li>
           <li><img src="img/t3.jpg" alt="banner_3" title="banner_3"></li>
       </ul>
   </div>
</body>

「ul + li」タグですべての画像を記載しておく。


(2)CSSの表示設定

/* ・画像1枚と同じサイズのwidth */
div.bannerDiv{
   border: 1px solid rgb(0,0,139);
   overflow: hidden;
   width:800px;
   margin: 0px;
}

/* ・widthは全部の画像サイズ
  ・余白は0(divサイズ目いっぱいにULが展開されるように設定)
*/
ul.bannerUl{
   list-style: none;
   width: 2400px;
   margin:0px;
   padding:0px;
}

/* ・floatで横並び
  ・画像1枚と同じサイズのwidth
*/
ul.bannerUl > li{
   float: left;
   width: 800px;
   margin: 0px;
}

ul li img{
   vertical-align: bottom;
}

divは画像1枚分、ulは全画像サイズ分のwidthで定義しておく。


(3)jsファイルを記述

$(function(){
   var imgNum = 3;     //画像の枚数
   var imgSize = 800;  //画像のサイズ
   var time = 2000;    //切り替えのタイミング
   var current = 0;    //現在の画像

   // 一定の間隔(2000ms)で処理を実行
   setInterval(function(){

       if( current < imgNum-1 ) {
       
           current++;
       
           $(".bannerUl").animate({
               marginLeft : parseInt($(".bannerUl").css("margin-left"))-imgSize+"px"
           },"fast");
       
       //最後の画像にきたら最初に戻る
       } else {
       
           $(".bannerUl").animate({
               marginLeft : parseInt($(".bannerUl").css("margin-left"))+(imgSize * (imgNum-1))+"px"
           },"fast");
       
           current = 0;
       }
   }, time);
});

自動処理メソッドの第一引数に、自動処理の内容
(margin-leftをずらしていく)を記載する。


2秒ごとにバナーがスライドする仕組みの完成~。

無題22

無題23

無題24


【出典】



いいなと思ったら応援しよう!