勉強したことのメモ

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

  関連記事

Dropzone.jsを使って画像をドラッグ&ドロップでアップロードする方法

画像を複数枚ドラッグ&ドロップでアップロードしたかった。だいぶ前にDro ...

jQueryのプラグインで簡単にイメージスライダーを作成(bxslider)

画像のスライダーを作る時に便利なプラグインであるbxslider。簡単に使えるし ...

jquery.snipeの使い方

使い方によっては面白くなりそう。 ■jquery.snipe http://ra ...

jQueryの画像スライダー用プラグイン「slick」の使い方

jQueryの画像スライダー用プラグイン「slick」の使い方についてソースコー ...

Ajaxでプラグイン無しのファイルアップロード方法

画像ファイルを添付できて、尚且つAjaxを用いた非同期通信のフォームを作りたかっ ...