「ええ!?複数設置したslickスライダーのスライド開始タイミングをずらす!?」
「できらぁっ!」
実装
単純にsettimeoutでslick()の実行タイミングを遅らせるだけでは、slick()が実行されていない段階のレイアウト崩れが発生してしまう。
というわけで、「読み込まれてから〇秒後に、自動スライドを開始する」作戦でいきましょう。
こうです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
$('#pickupSlider01').slick({ /* 1つ目のスライダーのオプション */ }); // 0.5秒後に2つ目のスライダーのautoplayを開始 $('#pickupSlider02').on('init', function () { var $self = $(this); setTimeout(function () { $self.slick('slickSetOption', 'autoplay', true, true); }, 500); }); $('#pickupSlider02').slick({ /* 2つ目のスライダーのオプション */ }); // 1秒後に3つ目のスライダーのautoplayを開始 $('#pickupSlider03').on('init', function () { var $self = $(this); setTimeout(function () { $self.slick('slickSetOption', 'autoplay', true, true); }, 1000); }); $('#pickupSlider03').slick({ /* 3つ目のスライダーのオプション */ }); |
もっとあるときはeachで回すのもあり。
現場からは以上です。