・slickで左右の画像を透過したり、小さくさせる方法は?
こんな疑問にお答えします。
slickでスライダーを作成するとき、左右の画像のみに装飾したいときありますよね。
真ん中の画像だけ普通で、左右だけ小さくさせたりなど。
あれ実は簡単に実装できちゃいます。
すぐにできるよ!
ということで、この記事では「slickで左右の画像を「透過・小さく」させる方法」について解説していきます!
・slickで左右の画像を「透過」させる方法
・slickで左右の画像を「小さく」させる方法
・slickで左右の画像を「透過」+「小さく」させる方法
目次
【解説】slickで左右の画像を「透過」させる方法
まず左右の画像だけ「透過」させる方法を紹介します。といっても小さくと同じやり方ですけどね。
結論としては「slick-center」を使うことです。
サンプルがこちら↓
See the Pen ➀slick01 by jito-coder (@jito-coder) on CodePen.
<div class="test-slick">
<div class="test-slick__item"><img src="https://jito-site.com/wp-content/uploads/2023/01/1.png" alt="" width="500" height="233"></div>
<div class="test-slick__item"><img src="https://jito-site.com/wp-content/uploads/2023/01/2.png" alt="" width="500" height="233"></div>
<div class="test-slick__item"><img src="https://jito-site.com/wp-content/uploads/2023/01/3.png" alt="" width="500" height="233"></div>
<div class="test-slick__item"><img src="https://jito-site.com/wp-content/uploads/2023/01/4.png" alt="" width="500" height="233"></div>
</div>
.test-slick__item img {
height: auto;
width: 100%;
opacity: .4;
transition: opacity .5s;
}
.test-slick__item.slick-center img {
opacity: 1;
}
$(function () {
$(".test-slick").slick({
autoplay: true,
centerMode: true,
centerPadding: '0px',
slidesToShow: 3,
dots: true,
arrows: false,
});
});
重要なコードがこちら↓
- 「centerMode」で中央に
- 全部の画像に対して透過させる
- 「slick-center」クラスに対して指定
順に見ていきましょう。
まず普通に中央ぞろえになったスライダーの実装をします。
<div class="test-slick">
<div class="test-slick__item"><img src="https://jito-site.com/wp-content/uploads/2023/01/1.png" alt="" width="500" height="233"></div>
<div class="test-slick__item"><img src="https://jito-site.com/wp-content/uploads/2023/01/2.png" alt="" width="500" height="233"></div>
<div class="test-slick__item"><img src="https://jito-site.com/wp-content/uploads/2023/01/3.png" alt="" width="500" height="233"></div>
<div class="test-slick__item"><img src="https://jito-site.com/wp-content/uploads/2023/01/4.png" alt="" width="500" height="233"></div>
</div>
4枚の画像を並べて、
下記のように「slidesToShowを3に」「centerModeをtrue」にして中央にします。
$(function () {
$(".test-slick").slick({
autoplay: true,
centerMode: true,
centerPadding: '0px',
slidesToShow: 3,
dots: true,
arrows: false,
});
});
続いて全部のスライダー画像に対して、透過させましょう。
.test-slick__item img {
height: auto;
width: 100%;
opacity: .4;
}
透過率を「0.4」にしました。
これで現状、全部の画像が透過しております。
後は真ん中に表示させる画像のみ、透過を元に戻せばOKです。
やり方は「slick-center」を使うことです。
実は「centerMode」を使うと、真ん中の画像に対して「slick-center」というクラスが付与されます。
つまりこのクラスに対してCSSを当たれば良いということ。
下記の感じですね↓
.test-slick__item.slick-center img {
opacity: 1;
}
これで真ん中の画像のみ、元の透過率になりました!
あとは良い感じに反映するように、全画像のopacityに対してtransitionをかけてあげましょう↓
.test-slick__item img {
height: auto;
width: 100%;
opacity: .4;
transition: opacity .5s;
}
これで実装完成!
【解説】slickで左右の画像を「小さく」させる方法
次に左右の画像を「小さく」する方法を紹介します。
といっても透過とやり方は同じです。
「全体の画像にscaleを指定して小さくする⇒真ん中の画像にscaleを指定して元の大きさに」これだけですね。
See the Pen slick左右透過➀ by jito-coder (@jito-coder) on CodePen.
.test-slick__item img {
height: auto;
width: 100%;
transform: scale(.7);
transition: transform .5s;
}
.test-slick__item.slick-center img {
transform: scale(1);
}
【解説】slickで左右の画像を「透過+小さく」させる方法
最後に「透過+小さく」する方法を紹介します。
といってもこれもやり方は同じ。opacityとscaleを合体させて指定すればOKです。
See the Pen slick左右透過➁ by jito-coder (@jito-coder) on CodePen.
.test-slick__item img {
height: auto;
width: 100%;
opacity: .4;
transform: scale(.7);
transition: opacity .5s, transform .5s;
}
.test-slick__item.slick-center img {
opacity: 1;
transform: scale(1);
}
これはslickの有名なバグですが、画像すうによっては2週目に到達した瞬間にちょっとがたつきます。
修正方法に関しては、下記記事が参考になるかと↓
⋙ついに!slick.jsの有名なバグを解消!centerModeの2周目のガタツキ問題。
【解説】slickのオプション一覧【カスタマイズまとめ】 【最新】slickのスライダー実装サンプル25選【コピペOK】【解説】slickで左右の画像を「透過・小さく」させる方法:まとめ
- 「centerMode」を使うと、真ん中の画像に対して「slick-center」というクラスが付与される
- 全部の画像に対して透過or小さくさせる
- 「slick-center」クラスに対してCSSを指定。真ん中画像のみ透過or小さくを元に戻す
slickで左右の画像のみカスタマイズしたいときは試してみてね!