swiperでスライドの開始位置を変更する方法

swiperでスライドの開始位置を変更する方法について紹介します。

たとえば通常1枚目からスタートしますが2枚目とか3枚目からスライダーを開始したいという要望があったとき。

swiper では「slideTo」を使用します。

swiperでスライドの位置を変更する

html

  <div class="swiper mySwiper2">
    <div class="swiper-wrapper">
      <div class="swiper-slide">
                <span>①</span>
        <img src="https://placehold.jp/500x200.png" />
      </div>
      <div class="swiper-slide">
                <span>②</span>
        <img src="https://placehold.jp/500x200.png" />
      </div>
      <div class="swiper-slide">
                <span>③</span> 
        <img src="https://placehold.jp/500x200.png" />
      </div>
      <div class="swiper-slide">
                <span>④</span>           
        <img src="https://placehold.jp/500x200.png" />
      </div>
      <div class="swiper-slide">
                <span>⑤</span>
        <img src="https://placehold.jp/500x200.png" />
      </div>
      <div class="swiper-slide">
                <span>⑥</span>           
        <img src="https://placehold.jp/500x200.png" />
      </div>
    </div>
    <div class="swiper-button-next"></div>
    <div class="swiper-button-prev"></div>
  </div>
  <div thumbsSlider="" class="swiper mySwiper">
    <div class="swiper-wrapper">
      <div class="swiper-slide">
                <span>①</span>           
        <img src="https://placehold.jp/500x200.png" />
      </div>
      <div class="swiper-slide">
                <span>②</span>
        <img src="https://placehold.jp/500x200.png" />
      </div>
      <div class="swiper-slide">
                <span>③</span>
        <img src="https://placehold.jp/500x200.png" />
      </div>
      <div class="swiper-slide">
                <span>④</span>                   
        <img src="https://placehold.jp/500x200.png" />
      </div>
      <div class="swiper-slide">
                <span>⑤</span>           
        <img src="https://placehold.jp/500x200.png" />
      </div>
      <div class="swiper-slide">
                <span>⑥</span>                   
        <img src="https://placehold.jp/500x200.png" />
      </div>
    </div>
  </div>       

htmlのスライド画像にはわかりやすいように番号を振っています。

css

    .swiper {
      width: 100%;
      height: 100%;
    }

    .swiper-slide {
      text-align: center;
      font-size: 18px;
      background: #fff;
      display: flex;
      justify-content: center;
      align-items: center;
    }

    .swiper-slide img {
      display: block;
      width: 100%;
      height: 100%;
      object-fit: cover;
    }
    .swiper {
      width: 100%;
      height: 300px;
      margin-left: auto;
      margin-right: auto;
    }

    .swiper-slide {
      background-size: cover;
      background-position: center;
    }

    .mySwiper2 {
      height: 80%;
      width: 100%;
    }

    .mySwiper {
      height: 20%;
      box-sizing: border-box;
      padding: 10px 0;
    }

    .mySwiper .swiper-slide {
      width: 25%;
      height: 100%;
      opacity: 0.4;
    }

    .mySwiper .swiper-slide-thumb-active {
      opacity: 1;
    }

    .swiper-slide img {
      display: block;
      width: 100%;
      height: 100%;
      object-fit: cover;
    }

js

document.addEventListener("DOMContentLoaded", function() {     
    swiper = new Swiper(".mySwiper", {
      spaceBetween: 10,
      slidesPerView: 4,
      freeMode: true,
      watchSlidesProgress: true,
    });

    swiper2 = new Swiper(".mySwiper2", {
      spaceBetween: 10,
      navigation: {
        nextEl: ".swiper-button-next",
        prevEl: ".swiper-button-prev",
      },
      thumbs: {
        swiper: swiper,
      },
    });

        swiper.slideTo(2, 0);
        swiper2.slideTo(2, 0);
});

スライドの開始位置を指定しているところは下記の記述になります。

swiper.slideTo(2, 0);
swiper2.slideTo(2, 0);

今回はサムネイルつきのスライダーなのでメインスライドとサムネイルのスライドの両方に指定する必要があります。

サンプル

サンプルはではスライダーの3枚目からスタートするようにしています。

コメント

タイトルとURLをコピーしました