勉強したことのメモ

Webエンジニア / プログラマが勉強したことのメモ。

「slick」でブラウザ幅がPCの場合はスライダーを表示し、スマホ幅の場合はスライダー無しにする方法

   2024/10/07  jQuery JavaScript

slickプラグインで画像スライダーを設置しているページがあり、PCのブラウザ幅の場合はスライダー有りのまま、スマホのブラウザ幅の場合はスライダーを無くして画像をそのまま表示させたいということがあった。以前にメモしたmatchMediaでいけるんじゃないかと思い試してみたところ実装できた。サンプルと実装方法をメモ。

 

サンプル

https://taitan916.info/sample/slick/display_change/

 

slick

公式サイト

https://kenwheeler.github.io/slick/

CDN

CDNで使う場合は以下を記述する。

<script type="text/javascript" src="https://code.jquery.com/jquery-3.7.1.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.9.0/slick.min.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.9.0/slick-theme.min.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.9.0/slick.css">

 

実装方法

ソースコード

PC / スマホはbreakpointの値によって判別されるので適宜調整すること。

<style>
#slider{
    width: 1200px;
    margin: 0 auto;
}
</style>

<div id="slider">
    <div><img src="./img/001.jpg"></div>
    <div><img src="./img/002.jpg"></div>
    <div><img src="./img/003.jpg"></div>
    <div><img src="./img/004.jpg"></div>
    <div><img src="./img/005.jpg"></div>
</div>

<script type="text/javascript" src="https://code.jquery.com/jquery-3.7.1.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.9.0/slick.min.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.9.0/slick-theme.min.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.9.0/slick.css">
<script>
$(function(){

    var breakpoint = 800;
    const limit = window.matchMedia(`(max-width: ${breakpoint}px)`);
    limit.addEventListener(`change`, slider);
    slider();

    function slider(){
        if( $(window).width() > breakpoint ){
            $(`#slider`).slick({
                infinite: true,
                slidesToShow: 3,
                slidesToScroll: 3,
                arrows: true, 
            });
        }else{
            $('#slider.slick-initialized').slick('unslick');
        }
    }
});
</script>

 - jQuery JavaScript

  関連記事

PHPにて指定した画像に対して、繰り返し透かし画像処理する方法
PHPにて指定した画像に対して、繰り返し透かし画像処理する方法

画像素材等のサイトで無料版の画像に対して「sample」等の透かし画像処理を行っ ...

バニラJS対応(jQuery非依存)の画像スライダー系プラグイン「Flickity」の利用方法
バニラJS対応(jQuery非依存)の画像スライダー系プラグイン「Flickity」の利用方法

画像スライダーを設置する場合「slick」プラグインを利用することが多い。ただ、 ...

バニラJS対応(jQuery非依存)の画像遅延読み込みプラグイン「echo.js」の利用方法
バニラJS対応(jQuery非依存)の画像遅延読み込みプラグイン「echo.js」の利用方法

あるサイトをブラウザの開発者ツールで見ていると「echo.js」と聞いたことの無 ...

フォームからアップロードした画像にPHPで任意のテキストを追加する方法
フォームからアップロードした画像にPHPで任意のテキストを追加する方法

以前フォームから送られてきた画像に対してサイトロゴみたいなロゴ画像を追加する記事 ...

PHPにて「ImageHash」ライブラリを使用し画像の類似度を算出する方法
PHPにて「ImageHash」ライブラリを使用し画像の類似度を算出する方法

以前にPHPの「image-comparator」ライブラリで画像の類似度を算出 ...