Slickで `centerMode : true` の時 `slidesToScroll` のオプションは無視される


Slickの CenterMode ＋ SlideToScrollでスライダーを動かすと、Slickの仕様でSlideToScrollが無視されてしまいます。
（真ん中寄りで3枚ずつ動かすとかです）

<p class="codepen" data-height="265" data-theme-id="default" data-default-tab="html,result" data-user="Sota" data-slug-hash="yLybvqQ" style="height: 265px; box-sizing: border-box; display: flex; align-items: center; justify-content: center; border: 2px solid; margin: 1em 0; padding: 1em;" data-pen-title="slider 1">
  <span>See the Pen <a href="https://codepen.io/Sota/pen/yLybvqQ">
  slider 1</a> by Sota Takahashi (<a href="https://codepen.io/Sota">@Sota</a>)
  on <a href="https://codepen.io">CodePen</a>.</span>
</p>
<script async src="https://static.codepen.io/assets/embed/ei.js"></script>

```js
$(document).ready(function(){
  const target = $('.slider_box')
  target.slick({
  slidesToShow: 3,
  slidesToScroll: 3,
  dots: false,
  centerMode: true,
  prevArrow: '<button class="prev arrow">←</button>',
  nextArrow: '<button class="next arrow">→</button>'
  });
});

```

GitHubIssueで2016/05に上がっており、
解決するためにプルリク投げてる方はいるようですが、2019/12ではまだ公式に解決はしていないみたいです…

Core codeを編集しよう☆って言ってる人もいるようですが下記方法で実装できたため覚書です:writing_hand:

# そもそも何故起きているのか

公式 Line 529
( https://github.com/kenwheeler/slick/blob/master/slick/slick.js#L529 )

```js
if (_.options.centerMode === true || _.options.swipeToSlide === true) {
    _.options.slidesToScroll = 1;
}
```
centerMode か swipeToSlide が true のときはslidesToScrollの値が自動で決められてしまうようです。

なので、ここをコメントアウトすれば手っ取り早く解決しますが、他の箇所で影響出てくる可能性があります:no_good:

# slickSetOption を使う
指定したオプションを変更するメソッドで、Ver1.4以降で使用可能とのこと。
<img width="932" alt="1.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/325594/3f1064fd-36a6-343c-0927-e2d87150220f.png">
<img width="932" alt="methods.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/325594/f4b42972-389a-37d5-98d2-322d6bc99fcb.png">

## どのように使用するか

```js
$('.slider').slick('slickSetOption', option, value, refresh);
```
- 第１引数（オプション名）
- 第２引数（オプションの値）
- 第３引数（boolean / trueの場合動く）
（第３引数はオプションなので書かなければtrueになります）

centerModeで3枚ずつ動かすとすれば、

```js
$('.slider').slick("slickSetOption", "slidesToScroll", 3, true);
```
手順は
1. Slickを動かす
2. 自動でslidesToScrollが1になる
3. 後からslidesToScrollの値を変える
で良さそうです。

##実装

```js
$(document).ready(function(){
  const target = $('.slider_box')
  target.slick({
  slidesToShow: 3,
  slidesToScroll: 3,
  dots: false,
  centerMode: true,
  prevArrow: '<button class="prev arrow">←</button>',
  nextArrow: '<button class="next arrow">→</button>'
  });
  target.slick("slickSetOption", "slidesToScroll", 3);
});
```

<p class="codepen" data-height="265" data-theme-id="default" data-default-tab="html,result" data-user="Sota" data-slug-hash="qBErjeK" style="height: 265px; box-sizing: border-box; display: flex; align-items: center; justify-content: center; border: 2px solid; margin: 1em 0; padding: 1em;" data-pen-title="slider 3">
  <span>See the Pen <a href="https://codepen.io/Sota/pen/qBErjeK">
  slider 3</a> by Sota Takahashi (<a href="https://codepen.io/Sota">@Sota</a>)
  on <a href="https://codepen.io">CodePen</a>.</span>
</p>
<script async src="https://static.codepen.io/assets/embed/ei.js"></script>

このメソッドでイベントに合わせてスライダーの挙動を変えたりするのが簡単にできるのでは、と思います。


# 参考サイト
When `centerMode` is set to true the `slidesToScroll` property setting is ignored. #2328
https://github.com/kenwheeler/slick/issues/2328