7
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

【slick.js】最初の1枚目だけ切り替わりが早い時の対処方法

Posted at

普段はあまり気にならないのですが、
自動で切り替わるスライダーを実装した時に

  • 最初の1枚目だけ切り替わるのが早く、コピーが読めない。
  • 2周目以降は切り替わる速さは問題ない

といった場合の対処方法を説明します。

##beforeChangeとslickSetOptionを使う

autoplaySpeedの初期値には 指定したいautoplaySpeedの値 + speedの値 を指定。
1枚目以外のスライドに切り替わったタイミングで slick('slickSetOption', 'autoplaySpeed', 8000, true) のように指定。

$slider.slick({
  infinite: true,
  fade: true,
  speed: 2000,
  autoplay: true,
  autoplaySpeed: 10000,
})

$slider.on('beforeChange',function(event, slick, currentSlide, nextSlide){
  if(nextSlide > 0 ) {
    $slider.slick('slickSetOption', 'autoplaySpeed', 8000, true)
  }
})

○枚目だけ切り替わる時間を変更したい場合

〇枚目だけ切り替わる時間を変更したいというときは、
第4引数の nextSlide をうまく使えば実装可能です。
今回は1枚目だけ切り替え速度を遅くするというパターンです。

$slider.slick({
  infinite: true,
  fade: true,
  speed: 2000,
  autoplay: true,
  autoplaySpeed: 10000, //1周目のスライド1枚目
});

$slider.on('beforeChange',function(event, slick, currentSlide, nextSlide){
  if(nextSlide > 0) { //スライド1枚目以外
    $slider.slick('slickSetOption', 'autoplaySpeed', 5000, true);
  } else { //2周目以降のスライド1枚目
    $slider.slick('slickSetOption', 'autoplaySpeed', 8000, true);
  }
});

あまり遭遇する機会もないかもですが、slick.js以外のライブラリでも考え方は同じなので、遭遇された方は一度お試しください。

7
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?