【メモ】lightbox系のプラグインを使いつつslickを組み合わせる方法

【メモ】lightbox系のプラグインを使いつつslickを組み合わせる方法

こんにちは!

最近アウトプットを怠っているのでたまには
アウトプットとして、コーディングの内容をまとめようと思います。
まとめといってもいつも通り自分用のメモとしてなので
わかりずらいです。

JavaScriptのライブラリである、モーダルウィンドウを簡単に実装できるlightbox系と
スライドショーを簡単に実装できるslickというプラグインがありますよね。

単体で使う分には全く問題がないのですが、両方組み合わせて使うと同じ画像が表示されてしまう、問題が発生するため解消する方法のメモです。

使ったプラグインは
モーダルウィンドウ lightbox2
スライドショー slick
の2つを使用しています。

目次

lightboxとslick

発生する問題について。

同じ画像がモーダルウィンドウに出てしまいます。
調べてみると、slickのプラグインはスライドショーにするために
クローンが生成されるため、それが原因で同じ画像が表示されてしまうようです。

【jQuery】モーダルウィンドウとスライダー系プラグイン組み合わせ時の注意点という
サイトで解決策が載っていたのですが、試したところ全く直りませんでした。

では、今回解消するためにどうしたかというと
クローンはどうやっても消えなかったので、モーダルウィンドウを単体表示することにしました。
どういうことかというと、モーダルウィンドウって使うプラグインにもよりますが、
1枚目から2枚目にクリックでスライドさせることができますが、できないようにしました。

よくわからないと思うのでこちらの実物を確認してみてください。
サンプル

こんな感じに表示されるかと思います。
左下のImageが表示されず、2枚目にも行けないようになっています。

調べてみると単体表示の仕方が載っていなかったので、
自分で色々といじってみました。

では、やり方について。
『lightbox.js』を編集していきます。

編集する前に
モーダルウィンドウを表示した時に、検証ツールで確認すると

『lb-next』と『lb-number』の二つが生成されていることがわかりました。
それなので、生成させないように『lightbox.js』を編集していきます。

『lb-number』を検索すると、4項目ヒットしました。
4項目ともすべて消してあげます。

これは消さなくても問題ありません。

if文ごと丸ごと消します。

表示が消えていますね。

次は『lb-next』を検索して消していきます。
8項目ヒットしました。
8項目すべて消していきます。

恐らく、クリックイベントなのでこれだけ消せば
2枚目に行かなくなります。

これは消さなくても問題ありません。

if文ごと丸ごと消します。

検証ツールで確認すると生成されていないことがわかります。
エラーも出ていないと思うので作業は完了です。

まとめ

lightbox系のプラグインを使いつつslickを組み合わせる方法でした。

lightboxを単体表示させることで解決しますが、1枚目から2枚目に移動させたいとなると
クローンが生成されているため、結局は重複してしまいます。
根本的な解決はできていませんが、slick.jsを編集すればできるかもしれません。

もしかしたら、別のlightbox系のプラグインを使えば解決策もあったかもしれませんが
使い慣れているlightbox2を編集してみました。

相変わらず自分用のメモなので、わかりにくいかと思いますが、
同じようにつまずいていたら参考にしてほしいです。

というわけで、
それでは!

 

 

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次