$(document).ready(function(){
$('.fancygallery-panel').wrapAll('<div id="isotopeCont" />');
$('#filters a').click(function(){
var selector = $(this).attr('data-filter');
$('#isotopeCont').isotope({
filter: selector ,
animationEngine:'best-available'
});
return false;
});
})
私は jQuery の専門家ではありませんが、そこにドキュメントを用意する必要はありませんか? リスト項目のクラスとアクティブな状態を使用して、同位体を別の方法で設定しました。これは私のコードです。
フィルターの HTML
<div id="filter">
<ul>
<li><a href="" title="*">All</a></li>
<li><a href="" title="test1">1</a></li>
<li><a href="" title="test2">2</a></li>
<li><a href="" title="test3">3</a></li>
<li><a href="" title="test4">4</a></li>
<li><a href="" title="test5">5</a></li>
<li><a href="" title="test6">6</a></li>
</ul>
</div>
リスト アイテムのギャラリー
<ul class="gallery simple" data-current="">
<li class="test5">
<a href="largerimage.jpg" class="button-thumbs" data-fancybox-group="gallery" title=""><span class="hover"></span><img src="image.jpg"/></a>
</li>
<li class="test6">
<a href="largerimage.jpg" class="button-thumbs" data-fancybox-group="gallery" title=""><span class="hover"></span><img src="image.jpg"/></a>
</li>
<li class="test5">
<a href="largerimage.jpg" class="button-thumbs" data-fancybox-group="gallery" title=""><span class="hover"></span><img src="image.jpg"/></a>
</li>
<li class="test3">
<a href="largerimage.jpg" class="button-thumbs" data-fancybox-group="gallery" title=""><span class="hover"></span><img src="image.jpg"/></a>
</li>
<li class="test1">
<a href="largerimage.jpg" class="button-thumbs" data-fancybox-group="gallery" title=""><span class="hover"></span><img src="image.jpg"/></a>
</li>
<li class="test2">
<a href="largerimage.jpg" class="button-thumbs" data-fancybox-group="gallery" title=""><span class="hover"></span><img src="image.jpg"/></a>
</li>
JQuery
<script src="PATHTOYOURJSDIR/jquery.isotope.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
var $container = $('ul.gallery');
var toFilter = '*';
$container.isotope({
filter: toFilter,
animationOptions: {
duration: 750,
easing: 'linear',
queue: false
}
});
$container.attr('data-current',toFilter);
checkActive();
$('#filter a').click(function(){
var title = $(this).attr('title');
var text = $(this).text();
if(text == "All"){
var selector = title;
}
else {
var selector = "." + title;
}
$container.attr('data-current',selector);
$container.isotope({
filter: selector,
animationOptions: {
duration: 750,
easing: 'linear',
queue: false
}
});
checkActive();
return false;
});
function checkActive(){
$('#filter a').each(function(){
$(this).removeClass("current");
var title = $(this).attr('title');
title = '.'+title;
if(title=='.*'){
title = '*';
}
var currentCat = $container.attr('data-current');
if(title==currentCat){
$(this).addClass("current");
}
});
}
var $container = $('ul.gallery')
// initialize Isotope
$container.isotope({
// options...
resizable: false, // disable normal resizing
// set columnWidth to a percentage of container width
masonry: { columnWidth: $container.width() / 4 }
});
// update columnWidth on window resize
$(window).smartresize(function(){
$container.isotope({
// update columnWidth to a percentage of container width
masonry: { columnWidth: $container.width() / 4 }
});
});
// trigger isotope again after images have loaded
$container.imagesLoaded( function(){
$(window).smartresize();
});
});
</script>
私はレスポンシブ デザイン全体で 4 を行っています。レイアウトに従ってこれを変更し、クラスと ID を変更する必要があります。html で呼び出されたものと jQuery で使用されたものを結び付けてください。#filter ul.gallery などを使用し、すべてのタグを閉じてください。