首先創建一個隱藏的div,把真實的數據給它。在這個例子中,我們將其稱爲#hidden。然後爲主砌體創建一個空白的div。我們稱之爲#masonry。因此,我們有這樣的事情至今:
<div id="hidden"> ... CONTAINING THE ACTUAL DATA ... </div>
<div id="masonry"></div> <!-- which is a blank div -->
的項目將通過其數據相對被檢測到,所以不要忘了所有的過濾器作爲數據-rel來的項目。例如:
<div class="work" data-rel="Template Design">CONTENT</div>
作爲過濾器,創建這樣的列表:
<ul id="port_filter">
<li data-rel="all" class="active">All</li>
<li data-rel="Graphic Design">Graphic Design</li>
<li data-rel="Template Design">Template Design</li>
<li data-rel="Programming">Programming</li>
</ul>
現在,處理在初始填充和過濾功能是這樣的:
// Initial loading
var all = $('#hidden .work');
$('#masonry').html(all);
$('#masonry').masonry({
itemSelector: '.work',
columnWidth: 299
});
// Portfolio filtering
$('#port_filter li').click(function(){
if($(this).hasClass('active')) {
return;
}
else {
$('#port_filter li').removeClass('active');
var filter = $(this).attr('data-rel');
$(this).addClass('active');
if(filter == 'all') {
$('#masonry').html(all);
$('#masonry').masonry();
}
else {
$('#masonry').html('').html(all);
removed = null;
var removed = $('#masonry .work[data-rel!="' + filter + '"]');
removed.remove();
$('#masonry').masonry();
}
}
});
此方法測試在砌體v4和最好的。
鏈接已死亡。請在堆棧溢出處張貼代碼或截圖,否則內容會丟失。 – jpierson 2011-01-28 19:43:57
在http://thinquetanque.com看到它 - 會有一些其他的更新 - 但現在,它是。 – Jason 2011-02-02 16:48:58
傑森,更新問題,而不是與新鏈接的評論。 – 2012-11-12 18:08:36