オプションのデフォルト値を再設定Flashムービーを置き換えるだけの簡単な仕事のはずが・・・Flashムービー(swf)で作られていたスライドショーを今の環境でも動作するようにしてほしいという案件があって、単純なスライドショーだったので、お手軽に使えるjQueryのスライダープラグイン「Slick」で置き換えました。needhttps://kenwheeler.github.io/slick/元のスライドショーは「Skip」ボタンをクリックすると指定のスライドまでスキップできるようになっていました。単純に考えて下記のようにしてみたのですが、なぜかうまく動きません。動作しないのではなく、動作したりしなかったりするのです。})});原因はどこに?最初はAutoplayの止め方が間違っていたり(infiniteオプションをfalseにしてもAutoplayは止まらない)、slickGotoとタイポしていたりしていたのですが、そういった問題をすべて潰してもうまく動きません。clickイベントが捉えられていないのかと思いmousedownにしたりしてみたのですが、そういうわけではなくalertを仕込んだらちゃんと動作します。最後には「Slickのバグなんじゃないか」なんて諦めかけていたんですが、なんのことはない、オプションのデフォルト値のせいでした。そのオプションは「waitForAnimate」です。これは、スライドアニメーションの最中にスライドを移動させるのを待たせるという設定で、デフォルトは「true」(アニメーション中はスライドの移動を待たせる)です。多くの場合、スライドは止まっている時間が長く次のスライドへ移動する時間は短めに設定すると思います。そのため、スライドが動いているタイミングでわざわざスライドを移動させようとはしません。今回は、元のFlashムービーの動きを踏襲することが前提でした。元のムービーは、スライドがフェードで入れ替わります。連続してゆっくり入れ替わっているので、止まっている時間はほんのわずか。そのため、止まっているときを狙ってクリックしないと動作しないのです。ちなみにデフォルトの設定とどれくらい動きが違っていたかというと、停止時間は3分の1、アニメーション時間は5倍以上となっています。自動再生の停止時間(autoplaySpeed):1000(デフォルト:3000)スライドのアニメーション時間(speed):1600(デフォルト:300)オプションのデフォルト値を再設定というわけで、下記の設定を追加したらどのタイミングでクリックしても指定のスライドに移動するようになりました。false;Slickの設定について書かれているブログは多かったのですが、このオプションに詳しく触れている記事はほとんどありませんでした。そもそもSlickでフェードを使う人は少ないようですので、このオプションを変える必要もないんですよね。いえ、ちゃんと設定があるというのもSlickの良いところなのかもしれません。技術記事コメントを残すコメントをキャンセル移転のお知らせ「WordPressのやさしい教科書。〜アナログからデジタルへの変遷〜2019年9月2日技術記事WordPressでは、なぜ固定ページの内容をテンプレートファイルに書いてはいけないのか?2019年6月24日技術記事「WordPressのやさしい教科書。20年以上の制作会社での経験を活かし、Web制作・DTP制作を行っています。制作の上流から下流まで、企画・制作から運用までまた、制作会社でのチームリーダー経験を活かし、制作会社様の現場のスキルアップや効率改善などのコンサルタントもさせていただいています。お気軽にお問い合わせください。