Quicksand выглядит так, как будто он будет делать то, что вы хотите: из документации - «На самом базовом уровне Quicksand заменяет одну коллекцию элементов другой».
Я думаю, вам просто нужно добавить элемент для отображения результатов фильтрации, например так:
<ul id="flavourFilter">
<li class="vanilla">Vanilla</li>
<li class="strawberry">Strawberry</li>
<li class="asparagus">Asparagus</li>
</ul>
<div id="source">
<div id="box1" class="vanilla">
</div>
<div id="box2" class="vanilla">
</div>
<div id="box3" class="strawberry">
</div>
<div id="box4" class="strawberry">
</div>
<div id="box5" class="asparagus">
</div>
<div id="box6" class="asparagus">
</div>
</div>
<div id="display"></div>
Ваш jQuery будет выглядеть примерно так:
$(function(){
//To load the unfiltered list into the display as the initial state:
$('#display').quickSand($('#source li'));
//To filter based on clicks in the menu:
$('#flavourFilter li').click(function(){
$('#display').quickSand($('#source li.' + this.className));
});
});
Возможно, есть способ изменить зыбучие пески, чтобы использовать один и тот же элемент для источника и дисплея (путем скрытия / отображения элементов вместо добавления и удаления их из DOM), но я думаю, что это должно заставить вас работать. .
Дайте мне знать, если вам нужно больше деталей!