BLOG

ブログ

  • Web制作

slickスライダーでスライドが1枚の時はスライダーを解除

slickスライダーでスライドが1枚の時はスライドを解除

追記・修正して2024年4月26日に再度公開しました。

Webサイト制作でスライダーを実装する時によくお世話になっている「slick」というjQueryプラグイン。

通常であればスライダーなのでスライド要素が複数ある前提なのですが、場合によっては公開時にはスライド要素が1枚しかない時があります。

そんな時、スライダー部分の表示が崩れてしまいます。

そこで、スライド要素が1枚の時はslickスライダーを解除する方法です。

<ul class="slick">
    <li class="slick-item">
        <img src="images/slide-1.jpg" alt="">
    </li>
    <li class="slick-item">
        <img src="images/slide-2.jpg" alt="">
    </li>
    <li class="slick-item">
        <img src="images/slide-3.jpg" alt="">
    </li>
</ul>
<script>
    $(function() {

        // slickスライダーの設定
        $('.slick').slick({
            //スライドさせる
            autoplay: true,
            autoplaySpeed: 5000,
            centerMode: true,
            centerPadding: "15%",
        });

        // スライドの枚数を取得する
        const slideLength = document.querySelectorAll(".slick-item").length;

        // スライドが1枚の時にクラス名「slide-one」を追加
        if (slideLength == 1) {
            $(".slick").addClass("slide-one");
        }

        // クラス名「slide-one」がある場合は slickを解除
        $(".slide-one.slick-initialized").slick("unslick");

    });
</script>