パソ君
・slickでマウスホイールでスライドを動かすことできる?
こんな疑問にお答えします。
案件によってはスライドをマウスホイールで動かしたい場合ありますよね。
実はslickでも動かすことができます。
ジト
すぐにできるよ!
ということで、この記事では「マウスホイールでスライドを動かす」について解説していきます!
この記事でわかること
マウスホイールでスライドを動かす
【slick】マウスホイールでスライドを動かす実装方法【コピペOK】
そんなマウスホイールでスライドが動くサンプルがこちら↓
See the Pen slickマウスホイール➀ by jito-coder (@jito-coder) on CodePen.
マウスホイールを上に動かすと右から左に。
マウスホイールを下に動かすと左から右に動きますよね。
下記コードのjQueryを使えば実装可能です。
$(function () {
var $carousel = $('.test-slick');
// slickの初期化
$carousel.slick({
dots: true,
autoplay: true,
autoplaySpeed: 3000,
centerMode: true,
centerPadding: '10%',
slidesToShow: 1,
});
// スクロールイベントの監視
$carousel.on('wheel', function(e) {
e.preventDefault();
if (!$carousel.hasClass('js-slick-moving')) {
if (e.originalEvent.deltaY < 0) {
$(this).slick('slickNext');
} else {
$(this).slick('slickPrev');
}
}
})
// スライド送り中を判定するためにクラスを付与する
$carousel.on('beforeChange', function(){
$carousel.addClass('js-slick-moving');
});
$carousel.on('afterChange', function(){
$carousel.removeClass('js-slick-moving');
});
});
自分の案件によって書き換える点は下記ですね。
slickを実装するクラス名と、slickのオプションと値をカスタマイズしましょう。
$(function () {
var $carousel = $('.test-slick');
// slickの初期化
$carousel.slick({
dots: true,
autoplay: true,
autoplaySpeed: 3000,
centerMode: true,
centerPadding: '10%',
slidesToShow: 1,
});
});
下記記事を参考にしております↓
slick.js マウススクロールでスライドを送れるようにする
【slick】マウスホイールでスライドを動かす実装方法【コピペOK】:まとめ
- slickでもマウスホイールでスライドを動かすことは可能
- wheelを使う
ジト
マウスホイールでスライドを動かしたいときは試してみてね!