slick Web制作 スライダー

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

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

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

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

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

slickの基本的な使い方と、slickを使うのに必要なjQueryの使い方については以下の記事を参照下さい。

あわせて読みたい
レスポンシブ対応のスライダープラグイン slickの使い方
レスポンシブ対応のスライダープラグイン slickの使い方

続きを見る

あわせて読みたい
【初心者向け】jQueryとは?CDNを使った本体の読み込み方についても分かりやすく解説
【初心者向け】jQueryとは?CDNを使った本体の読み込み方も分かりやすく解説

続きを見る

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

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

続きを見る

 

完全無料のプログラミングスクール『ZeroPlus Gate』
30日間でWeb制作を学べる無料のプログラミングスクールがこちら
  • 30日間でWeb制作を学べる
  • 完全無料
  • 現役エンジニアへの質問無制限
  • オンラインの動画学習なので時間場所を問わず勉強可能
  • 最大4回の学習サポート面談
  • 受付は1日25名までの先着制
無料なのに専属のメンターが付き、現役エンジニアへの質問も無制限という破格のサービスです。
いきなり数十万するプログラミングスクールは厳しい・・・という人のお試しに最適。
現在は無料ですがいつ有料になるか分からないので、気になる方はお早めに👇

\ 完全無料 /

ZeroPlus Gate公式サイト

先着1日25名まで!

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

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

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

コードはこちら。

<div class="slick">
  <div class="slick-container">
    <div class="slick-box slick-box01">1 / 6</div>
    <div class="slick-box slick-box02">2 / 6</div>
    <div class="slick-box slick-box03">3 / 6</div>
    <div class="slick-box slick-box04">4 / 6</div>
    <div class="slick-box slick-box05">5 / 6</div>
    <div class="slick-box slick-box06">6 / 6</div>
  </div>
</div>
$(function () {
  // .slick-containerというクラスを持つ要素にSlick Sliderを適用する
  $(".slick-container").slick({
    autoplay: true, // 自動再生を有効にする
  });
});

.slick-slide.slide-sliderというclass名はslickが独自に使っているので、使うのは避けましょう。

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

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

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

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

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

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

$(function () {
  // .slick-containerというクラスを持つ要素にSlick Sliderを適用する
  const slider = $(".slick-container");
  const windowHeight = $(window).height();

  // Slick Sliderを初期化し、自動再生を無効にする
  slider.slick({
    autoplay: false,
  });
  // スライダーが画面内に入ったときに自動再生を有効にする処理
  slider.on("init", function () {
    // Slick Sliderが初期化されたときの処理
    if (slider.height() <= windowHeight) {
      // スライダーの高さがウィンドウの高さ以下の場合、自動再生を有効にする
      slider.slick("slickPlay");
    }
  });

  $(window).on("scroll", function () {
    const rect = slider[0].getBoundingClientRect();
    if (rect.top < windowHeight && rect.bottom >= 0) {
      // スライダーが画面内に入った場合、自動再生を有効にする
      slider.slick("slickPlay");
    } else {
      // 画面外に出た場合、自動再生を停止
      slider.slick("slickPause");
    }
  });
  // ウィンドウがリサイズされたときに再評価する
  $(window).on("resize", function () {
    if (slider.height() <= windowHeight) {
      // スライダーの高さがウィンドウの高さ以下の場合、自動再生を有効にする
      slider.slick("slickPlay");
    }
  });
});

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

See the Pen
slick(スクロール対応)
by junpei (@junpei-sugiyama)
on CodePen.

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

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

まとめ

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

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

以上になります。

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

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

 

Web制作おすすめ教材と案件獲得サービス
当ブログではWeb制作学習におすすめの教材を厳選してご紹介しています。
こちらの記事を参考に教材を購入して成果を出している人もたくさんいるので、自分に必要な教材を探してみて下さい。
また、学習面だけでなく営業面である案件獲得サービスもご紹介しています。
スキルが身についても仕事がなければ意味がないので、営業に不安がある人はこちらの記事をぜひ参考にしてみて下さい。
この記事を参考にスキルと営業力を身につけて稼げるようになりましょう!

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