Swiperを使ってスライダーアニメーションを実装する〜導入編〜


はじめに

タイトルについて記事にしました。
この記事で得る内容は以下の通りです。

・ Swiperの概要、直接ファイルをダウンロードして導入する方法

■ 関連記事
Swiperを使ってスライダーアニメーションを実装する〜使い方編〜
Swiperを使ってスライダーアニメーションを実装する〜ページネーションやナビゲーションのカスタマイズ編〜

概要

Swiper

SwiperはJavaScriptライブラリで、JQueryに依存せずJavaScript単体で動作させることができます。
導入も簡単で多機能のため、多くのユーザーに使われています。

導入

Swiperを導入するには、直接ファイルをダウンロードする方法と、CDNのようにサーバに読み込み
に行く方法などがありますが、今回は直接ファイルをダウンロードする方法をご紹介します。

公式ページに移動します。

② Get Startedをクリックします。

③ 左サイドバーから『Download assets』をクリックし、画面右側のURLをクリックします。

④ 『swiper-bundle.min.css』と『swiper-bundle.min.js』をそれぞれ開きます。
※ minは改行やスペースを省いた圧縮されたファイルのことを示します。

⑤ 『swiper-bundle.min.css』と『swiper-bundle.min.js』のそれぞれのファイルから、表示されたソースコードを全て選択し、ファイル毎に分けてコピーします。
※ ソースコードが全て選択されるまで時間がかかる場合があります。また、ページネーションやバーが表示されない場合はここできちんとコピーできていない可能性があります。

⑥ 『swiper-bundle.min.css』と『swiper-bundle.min.js』のそれぞれのファイル分を新規作成し、作成したファイルにコピーしたソースコードをファイル毎に分けて貼り付けます。
※ 好みによりますが、CSSはCSS、JSはJSと種別毎にフォルダを作成して分けると見やすくなり、
今後ファイルが増えてもメンテナンスしやすくなります。

⑦ 公式サイトより、少し戻って左サイドバーから『Add Swiper HTML Layout』をクリックし、表示されているソースコードを自身のHTMLファイルとCSSファイルに貼り付けます。

⑧ 左サイドバーから『Initialize Swiper』をクリックし、表示されているソースコードを自身のJSファイルに貼り付けます。

⑨ htmlファイルを以下の例を参考に、ファイルの場所を考慮し自身の環境に合うよう編集します。
※ reset.cssから読み込むようにし、最後に自分が書いたCSSを読み込むようにします。
※ scriptタグにdefer属性をつけることで、HTMLの読み込み後に実行し、複数ある場合は上から順番に読み込まれます。

index.html
<!DOCTYPE html>
<html lang="ja">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <link rel="stylesheet" href="css/reset.css">
  <link rel="stylesheet" href="css/swiper-bundle.min.css">
  <link rel="stylesheet" href="css/style.min.css">
  <script src="js/swiper-bundle.min.js" defer></script>
  <script src="js/script.js" defer></script>
</head>

<body>
  <!-- Slider main container -->
  <div class="swiper-container">
    <!-- Additional required wrapper -->
    <div class="swiper-wrapper">
      <!-- Slides -->
      <div class="swiper-slide">Slide 1</div>
      <div class="swiper-slide">Slide 2</div>
      <div class="swiper-slide">Slide 3</div>
      ...
    </div>
    <!-- If we need pagination -->
    <div class="swiper-pagination"></div>

    <!-- If we need navigation buttons -->
    <div class="swiper-button-prev"></div>
    <div class="swiper-button-next"></div>

    <!-- If we need scrollbar -->
    <div class="swiper-scrollbar"></div>
  </div>
</body>

</html>

完成例

簡易ではありますが、スライダーアニメーションを実装できました。

index.html
<!DOCTYPE html>
<html lang="ja">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <link rel="stylesheet" href="css/swiper-bundle.min.css">
  <link rel="stylesheet" href="css/reset.css">
  <link rel="stylesheet" href="css/style.min.css">
  <script src="js/swiper-bundle.min.js" defer></script>
  <script src="js/script.js" defer></script>
</head>

<body>
  <!-- Slider main container -->
  <div class="swiper-container">
    <!-- Additional required wrapper -->
    <div class="swiper-wrapper">
      <!-- Slides -->
      <div class="swiper-slide pic1">
      </div>
      <div class="swiper-slide pic2">
      </div>
      <div class="swiper-slide pic3">
      </div>
    </div>
    <!-- If we need pagination -->
    <div class="swiper-pagination"></div>

    <!-- If we need navigation buttons -->
    <div class="swiper-button-prev"></div>
    <div class="swiper-button-next"></div>

    <!-- If we need scrollbar -->
    <div class="swiper-scrollbar"></div>
  </div>
</body>

</html>
style.scss
@mixin swp {
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
}

.swiper-container {
  width: 100%;
  height: 100vh;
  .swiper-wrapper {
    .swiper-slide {
    }
    .swiper-slide.pic1 {
      background: url("../pic/picture1.jpg");
      @include swp;
    }
    .swiper-slide.pic2 {
      background: url("../pic/picture2.jpeg");
      @include swp;
    }
    .swiper-slide.pic3 {
      background: url("../pic/picture3.jpg");
      @include swp;
    }
  }
}
script.js
const swiper = new Swiper('.swiper-container', {
  // Optional parameters
  direction: 'horizontal',
  loop: true,
  speed: 500,
  slidesPerView: 3,
  centeredSlides: true,
  spaceBetween: 10,

   autoplay: {
     delay: 2000
   },

  // If we need pagination
  pagination: {
    el: '.swiper-pagination',
  },

  // Navigation arrows
  navigation: {
    nextEl: '.swiper-button-next',
    prevEl: '.swiper-button-prev',
  },

  // And if we need scrollbar
  scrollbar: {
    el: '.swiper-scrollbar',
  },
});

コンソールに警告が表示された場合

.mapと呼ばれるソースマップファイルがないですと警告されています。

警告されていても、動作には問題ありませんが、swiper-bundle.min.jsファイルの最後の行を消すと
警告は表示されなくなります。

関連記事

Swiperを使ってスライダーアニメーションを実装する〜使い方編〜