jQueryプラグイン「leanmodal」「slick」を使って、
画像をクリック→スライダーモーダルが出現、というアクションが行えるギャラリーページを作りました。
■ 画像をクリック (例: No.01の上の画像をクリック)
■モーダルが出現。 (モーダル内はスライダーになっています)
ここまでの動きは問題ないのですが、
このギャラリーページは2ページ目、3ページ目、、、と複数のページがあるので、
ページ下部にページャーを設置しました。
これに「infinite scroll」というjQueryプラグインを使って、
ページ下部に移動すると自動で次ページのコンテンツを読み込み、
下につなげる、いわゆる無限スクロールアクションを追加しました。
ここまでも問題なかったのですが、
次のページが読み込まれたときに、モーダルは正常に動いているのですが、
スライダーが機能せず、スクリプト側でおこなうはずの
スライダー用のclass付与や、CSSスタイル適用がされない状態でした。
■本来は上記の2枚目の画像と同じレイアウトになるはずがならない。。
コードは以下のような感じ(みづらくなるので質問に不要なコードは削除してます)です。
なぜ、次ページの読み込みされたページは、modalまでしか正常に機能しないのでしょうか?
html
1<div class="gallery"> 2 <div class="gallery-list"> 3 <div class="gallery-item"><a rel="leanModal" href=”#modal01”></a><img src="01_thumb.png"></div> 4 <div class="modal" id="modal01"> 5 <div class="modal-slider"> 6 <div class="modal-item"><img src="01.png"></div> 7 <div class="modal-item"><img src="01-2.png"></div> 8 <div class="modal-item"><img src="01-3.png"></div> 9 </div> 10 <!--/.modal--></div> 11 <div class="gallery-item"><a rel="leanModal" href=”#modal02”></a><img src="02_thumb.png"></div> 12 <div class="modal" id="modal02"> 13 <div class="modal-slider"> 14 <div class="modal-item"><img src="02.png"></div> 15 <div class="modal-item"><img src="02-2.png"></div> 16 <div class="modal-item"><img src="02-3.png"></div> 17 </div> 18 <!--/.modal--></div> 19 <div class="gallery-item"><a rel="leanModal" href=”#modal03”></a><img src="03_thumb.png"></div> 20 <div class="modal" id="modal03"> 21 <div class="modal-slider"> 22 <div class="modal-item"><img src="03.png"></div> 23 <div class="modal-item"><img src="03-2.png"></div> 24 <div class="modal-item"><img src="03-3.png"></div> 25 </div> 26 <!--/.modal--></div> 27 </div> 28</div> 29
javascript
1function() { 2 // leanmodal 3 $( 'a[rel*=leanModal]').leanModal(); 4 5 // slick 6 $('.modal-slider').slick(); 7 8 // infinite scroll ※スクロール発動時に再度、leanmodalとslickを実行する 9 $('.gallery').infinitescroll({ 10 navSelector : ".pager", 11 nextSelector : ".pager a.next", 12 itemSelector : ".gallery-list", 13 },function() { 14 // ↓読み込み後のためのmodalの記述。正常に動いてます 15 $( 'a[rel*=leanModal]').leanModal(); 16 },function() { 17 // ↓読み込み後のためのslickの記述。問題があるとするとここでしょうか?。。 18 $('.modal-slider').slick(); 19 },1000); 20});
途中に記述してますが、slickの実行タイミングを少し遅らせたり、もやっています。
全くお手上げ状態なので、どなたか分かる方もしくはヒントになるものでもご教示いただけますと幸いです。
宜しくお願いします。
あなたの回答
tips
プレビュー