Swiper Web制作 スライダー

【Swiper】スクロールして画面にスライダーが表示されたらautoplayを開始する方法

2023年9月25日

※ 当サイトではアフィリエイト広告を利用しています

Swiperのスライダーってスクロールして画面内に入ってからスライダーを開始できる?

通常Swiperのスライダーはページを開いたら画面に表示されていなくても、autoplay(自動再生)を有効にしていればスライダーは開始してしまいます。

そこで今回はスクロールして画面内にスライダーが現れたら動き出す方法を解説していきます。

Swiperの基本的な使い方についてはこちらの記事を参照下さい。

あわせて読みたい
【jQuery不要】スライダープラグイン Swiper.jsの使い方
【2024年最新Ver11】Swiperの使い方とよく使うオプション・カスタマイズ方法を解説

続きを見る

またSwiperには色々カスタマイズが出来るオプションがあるので、そちらも合わせて活用すると実装出来るスライダーの幅が広がります。

あわせて読みたい
【Swiper】カスタマイズ用オプションまとめ一覧
【Swiper】カスタマイズ用オプションまとめ一覧

続きを見る

じゅんぺいブログは、Web制作コーディングWordPress制作)の技術記事を中心に、約500記事公開しています。ぜひ他の記事も参考にしてみてください!
完全無料のプログラミングスクール『ZeroPlus Gate』
30日間でWeb制作を学べる無料のプログラミングスクールがこちら
いきなり数十万するプログラミングスクールは厳しい・・・という人のお試しに最適です。
現在は無料ですがいつ有料になるか分からないので、気になる方はお早めに👇
(有料になっていたらすいません🙇‍♂️)

\ 完全無料 /

ZeroPlus Gate公式サイト

毎日先着制!

Swiperでスクロールしてスライダーが画面に表示されたらautoplayを開始する方法

まずは基本となるスライダーはこちらです。

See the Pen
Untitled
by junpei (@junpei-sugiyama)
on CodePen.

コードはこちら。

<div class="swiper">
  <div class="swiper-wrapper">
    <div class="swiper-slide swiper-slide01">1 / 6</div>
    <div class="swiper-slide swiper-slide02">2 / 6</div>
    <div class="swiper-slide swiper-slide03">3 / 6</div>
    <div class="swiper-slide swiper-slide04">4 / 6</div>
    <div class="swiper-slide swiper-slide05">5 / 6</div>
    <div class="swiper-slide swiper-slide06">6 / 6</div>
  </div>
</div>
const swiper = new Swiper(".swiper", {
  loop: true, // スライダーをループさせる
  speed: 1500, // スライドの切り替え速度(デフォルトは300)
  autoplay: {
    // 自動再生の設定
    delay: 1000, // 1秒後に次のスライドに自動で切り替える
  },
});

CSSは調整用なので割愛します。

これを画面の下の方にしてみるので『スクロールして下さい』という文字が表示されて3秒くらい待ってからスクロールしてみて下さい。

See the Pen
Untitled
by junpei (@junpei-sugiyama)
on CodePen.

スライダーが表示された時点でスライドは何枚か進んでいると思います(右下のRerunをクリックすればリセットされます)

これを下の方にあったとしても、スライダーが画面に表示されるまでは自動再生しないようにしたいと思います。

そのコードはこちらです。

const swiper = new Swiper(".swiper", {
  // スライダーのオプションを設定
  loop: true, // スライダーをループさせる
  speed: 1500, // スライドの切り替え速度(デフォルトは300)
  autoplay: false, // 最初は自動再生を無効
});
// スクロールイベントを検知
window.addEventListener("scroll", function () {
  // スライダーのコンテナ要素を取得
  const sliderContainer = document.querySelector(".swiper");
  // スライダーのコンテナの位置情報を取得
  const rect = sliderContainer.getBoundingClientRect();
  // ウィンドウの高さを取得(クロスブラウザ対応)
  const windowHeight =
    window.innerHeight || document.documentElement.clientHeight;
  if (rect.top < windowHeight && rect.bottom >= 0) {
    // スライダーが画面内に入った場合、自動再生を有効にして開始
    swiper.params.autoplay.delay = 1000; // 自動再生の遅延設定
    swiper.autoplay.start();
  } else {
    // 画面外に出た場合、自動再生を停止
    swiper.autoplay.stop();
  }
});

swiper.params.autoplay.delay = 1000;については無くても大丈夫です。

そしてサンプルはこちらです。『スクロールして下さい』という文字が表示されて3秒くらい待ってからスクロールしてみて下さい。

See the Pen
Untitled
by junpei (@junpei-sugiyama)
on CodePen.

今度は1枚目のスライドから動き出したと思います。

また、さらに下にスクロールして画面外になったら自動再生は停止して、再度画面内に表示されたら再開します。

まとめ

今回はSwiperスライダーでスクロールして、画面内にスライダーが現れたら動き出すようにする方法を解説しました。

これでスライダーがどの位置にあっても、画面内に現れてから自動再生が開始できるようになります。

以上になります。

関連記事slick記事一覧
関連記事Swiper記事一覧
関連記事Splide記事一覧

この記事が役に立ったと思ったら、シェアボタンからX(旧Twitter)などにシェアすると、いいねされてフォロワーが増えたりすることがあるよ!

 

  • この記事を書いた人

じゅんぺい

37歳からWeb制作とブログ開始。Web制作歴5年目でコーディングとWordPressオリジナルテーマ制作が中心。これまで120件以上を納品。当ブログ月間最高15万PVで、370記事以上はWeb制作の技術記事。コンテンツ販売→累計売上1200万円&1500部超え。X(旧Twitter)フォロワー7200人以上。2024年3月からブログの経験を活かしてライターとしても活動を開始。

-Swiper, Web制作, スライダー