https://sakic.jp/blog/web/masonry-filter
こちらの方を参考にmasonry にフィルターをつけたギャラリーを作りました。
それに対してmagnific popupでフィルター毎のスライドショーを表示させたいです。
html
1<div class="category-btn"> 2 <a href="" class="all">All</a> 3 <a href="" class="a">a</a> 4 <a href="" class="b">b</a> 5 <a href="" class="c">c</a> 6</div> 7<div class="grid"> 8 <div class="grid-block item-all item-a" href="a.jpg"><img src="a.jpg"></div> 9 <div class="grid-block item-all item-b" href="b.jpg"><img src="b.jpg"></div> 10 <div class="grid-block item-all item-c" href="c.jpg"><img src="c.jpg"></div> 11 <div class="grid-block item-all item-a" href="d.jpg"><img src="d.jpg"></div> 12 <div class="grid-block item-all item-b" href="e.jpg"><img src="e.jpg"></div> 13</div> 14
参考にさせていただいたフィルター部分の引用です
javaScript
1<script> 2$(function(){ 3 categoryBtn = $('.category-btn').find('a'); 4 categoryBtn.each(function() { 5 $(this).click(function(e){ 6 var selected = $(this).attr('class'); 7 e.preventDefault(); 8 categoryBtn.removeClass('is-current'); 9 $(this).addClass('is-current'); 10 $('body').removeClass(function(index, className) { 11 return (className.match(/\bcategory-\S+/g) || []).join(' '); 12 }).addClass('category-' + selected); 13 $('.grid').masonry({ 14 itemSelector: '.grid-block', 15 isFitWidth: true, 16 }); 17 }); 18 }); 19 $('.grid').masonry({ 20 itemSelector: '.grid-block', 21 isFitWidth: true, 22 }); 23}); 24</script>
magnificPopupのスクリプトです。
javaScript
1 jQuery(function($){ 2 $('.grid').magnificPopup({ 3 delegate: 'div:not()', 4 type: 'image', 5 gallery: { 6 enabled:true 7 } 8 }); 9 }); 10
class-aのフィルターを選択、結果 a.jpg , d.jpg が表示されます。
しかしクリックしてスライドショーを見ようとすると、
当然 'grid' 内の全てのアイテムのスライドになってしまいます。
例えば delegate: 'div:not(.item-a)',
で.item-aを除外して表示。という所までは分かるのですが、
フィルター別のスライドの作り方が分かりませんでした。
色々試してみましたが上手く機能しませんでした。
勉強も始めたばかりで拙い問題なのかもしれませんが、ご教授いただければ幸いです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/08/23 05:59