「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側で更に調整が必要かも。
関連記事
-
-
jQueryで画像(
タグ内)のsrc情報を取得する場合
すぐに出てこなかったのでメモ。 $('#test').attr('src'); ...
-
-
jQueryのプラグインで簡単にイメージスライダーを作成(bxslider)
画像のスライダーを作る時に便利なプラグインであるbxslider。簡単に使えるし ...
-
-
Ajaxでプラグイン無しのファイルアップロード方法
画像ファイルを添付できて、尚且つAjaxを用いた非同期通信のフォームを作りたかっ ...
-
-
Dropzone.jsを使って画像をドラッグ&ドロップでアップロードする方法
画像を複数枚ドラッグ&ドロップでアップロードしたかった。だいぶ前にDro ...
-
-
「slick」で作成したスライダー画像にランキングの順位を表示する方法
「slick」で作成したスライダー画像に対して、ランキングの順位を表示したいとい ...