Quicksand semble que cela va faire ce que vous voulez: de la documentation - «Au niveau très basique, Quicksand remplace une collection d'objets avec un autre.
Je pense que vous avez juste besoin d'ajouter un élément pour afficher les résultats du filtrage, comme ceci:
<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>
Votre jQuery serait quelque chose comme:
$(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));
});
});
Il y a peut-être un moyen de modifier les sables mouvants pour utiliser le même élément pour la source et l'affichage (en masquant/montrant les éléments, au lieu de les ajouter et les retirer du DOM), mais cela devrait vous permettre de fonctionner, je pense. Faites-moi savoir si vous avez besoin de plus de détails!