「slick」でスライダー中央の下部にのみ指定したコンテンツを表示する方法
「slick」でスライダー画像の下部に何らかのコンテンツ(テキスト・リンク・別画像等)を設置した場合、通常だと全てのスライダー画像の下部に当該コンテンツが表示される筈。これをスライダーの中央画像の下部にのみ表示し、左右の画像の下部は非表示としたいというケースがあった。以下に対応方法をメモ。
サンプル
https://taitan916.info/sample/slick/center_contents/
対応方法
ソースコード
<style> #slider{ .slick-arrow{ z-index: 2; top: 100px; } .slick-prev{ left: 1%; } .slick-next{ right: 1%; } .contents{ width: 100%; background-color: #ccc; height: 100px; display: none; } .slick-current .contents{ display: block; } } </style> <main> <section> <div id="slider"> <div> <div class="img"> <img src="../img/001.jpg"> </div> <div class="contents"> コンテンツ1 </div> </div> <div> <div class="img"> <img src="../img/002.jpg"> </div> <div class="contents"> コンテンツ2 </div> </div> <div> <div class="img"> <img src="../img/003.jpg"> </div> <div class="contents"> コンテンツ3 </div> </div> <div> <div class="img"> <img src="../img/004.jpg"> </div> <div class="contents"> コンテンツ4 </div> </div> <div> <div class="img"> <img src="../img/005.jpg"> </div> <div class="contents"> コンテンツ5 </div> </div> </div> </section> </main> <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.min.css"> <script> $(function(){ $(`#slider`).slick({ autoplay: true, dots: false, infinite: true, slidesToShow: 1, centerMode: true, variableWidth: true }); }); </script>
解説等
「.contents」部分をデフォルトでは非表示とし、中央に来た際に「.slick-current」が付与されるのでそのタイミングで表示させている。
所感
画像の切れ目(サンプルページだと画像1⇔5)の切り替えの際、微妙にコンテンツ部分の表示が遅れる点が少々気になるところ。フェード的なエフェクトを入れて誤魔化等、CSS側で更に調整が必要かも。
関連記事
-
「slick」でブラウザ幅がPCの場合はスライダーを表示し、スマホ幅の場合はスライダー無しにする方法
slickプラグインで画像スライダーを設置しているページがあり、PCのブラウザ幅 ...
-
JSやjQueryで動的に追加した要素に対して「slick」でスライダーを実行する方法
外部サーバからAjax等で画像URLを取得したものをimgタグとしてページ内に描 ...
-
ライブラリ等を使用せずファイルをドラッグ&ドロップでアップロードする方法
formにドラッグ&ドロップでファイルをアップロードする機能を実装する場 ...
-
サムネイルをクリックすると拡大画像を表示できる「Lightbox」の利用方法
画像をサムネイル表示してクリックしたら大きく表示する というのがLightbox ...
-
Dropzone.jsを使って画像をドラッグ&ドロップでアップロードする方法
画像を複数枚ドラッグ&ドロップでアップロードしたかった。だいぶ前にDro ...