JavaScript PR

jquery.quicksand.jsを使ってliタグコンテンツをアニメーションソートする方法

記事内に商品プロモーションを含む場合があります

jquery.quicksand.jsを使ってliタグコンテンツをアニメーションソートする方法をご紹介します。
liタグコンテンツをカテゴリー毎に数を増減させてアニメーションソートする時に使用しました。

liタグコンテンツをアニメーションソートするjquery.quicksand.jsファイルを読み込む

※jquery.min.js(v1.6.2)、jquery.quicksand.jsファイルを読み込みます。

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script>
<script src="jquery.quicksand.js" type="text/javascript"></script>

liタグコンテンツをアニメーションソートするCSSの記述

※アニメーションソートさせるため「li」「.Sbox」「.Sbox li」タグを用意する必要(調整可)があります。

<style type="text/css">
<!--
body {
	margin: 0px;
	font-size:14px;
}
h1{
	font-size:16px;
	font-weight:normal;
	line-height:1.2em;
	text-align:center;
	padding-bottom:15px;
}
li{list-style-type: none;}
a{
	font-size:14px;
	text-decoration:none;
	line-height:1.4em;
}
a:hover{
	font-size:14px;
	text-decoration:underline;
	line-height:1.4em;
}
#idWrap{
	width:300px;
	margin:0 auto;
	text-align:center;
}
.Sbox {
	overflow: hidden;
}
.Sbox li{
	display: block;
	float: left;
	width:50px;
	height:50px;
	margin: 0;
	padding:4px;
}
-->
</style>

liタグコンテンツをアニメーションソートするHTMLとJavaScriptの記述

※ソート対象のliコンテンツの下にJavaScriptを記述してます。$(ソートエリア).quicksand( liタグ, {演出オプション} )で設定します。
また、上記方法はソート内容を以下の別ファイル(index1.html、index2.html、index3.html)に別けて設定します。

<h1>liタグコンテンツを複数(別ページ)に別けて、アニメーションソート表示</h1>
        
<div id="idWrap">

<a class="button" href="index1.html">ソート1(降順)</a><br>
<a class="button" href="index2.html">ソート2(昇順)</a><br>
<a class="button" href="index3.html">ソート3(半分の昇順)</a>
<br> <br>
<ul class="Sbox">
<li data-id="01"><img src="img1.jpg" width="50" height="50" alt=""></li>
<li data-id="02"><img src="img2.jpg" width="50" height="50" alt=""></li>
<li data-id="03"><img src="img3.jpg" width="50" height="50" alt=""></li>
<li data-id="04"><img src="img4.jpg" width="50" height="50" alt=""></li>
<li data-id="05"><img src="img5.jpg" width="50" height="50" alt=""></li>
<li data-id="06"><img src="img6.jpg" width="50" height="50" alt=""></li>
<li data-id="07"><img src="img7.jpg" width="50" height="50" alt=""></li>
<li data-id="08"><img src="img8.jpg" width="50" height="50" alt=""></li>
<li data-id="09"><img src="img9.jpg" width="50" height="50" alt=""></li>
<li data-id="10"><img src="img10.jpg" width="50" height="50" alt=""></li>
</ul>

<script type="text/javascript">
$(function() {
$('a.button').click(function(e) {
	$.get( $(this).attr('href'), function(data) {
		$('.Sbox').quicksand( $(data).find('li'), {adjustHeight: 'dynamic'} );
	});	
	e.preventDefault();	
});
});
</script>

降順ソートする別ファイル(index1.html)の記述

<ul class="Sbox">
<li data-id="10"><img src="img10.jpg" width="50" height="50" alt=""></li>
<li data-id="09"><img src="img9.jpg" width="50" height="50" alt=""></li>
<li data-id="08"><img src="img8.jpg" width="50" height="50" alt=""></li>
<li data-id="07"><img src="img7.jpg" width="50" height="50" alt=""></li>
<li data-id="06"><img src="img6.jpg" width="50" height="50" alt=""></li>
<li data-id="05"><img src="img5.jpg" width="50" height="50" alt=""></li>
<li data-id="04"><img src="img4.jpg" width="50" height="50" alt=""></li>
<li data-id="03"><img src="img3.jpg" width="50" height="50" alt=""></li>
<li data-id="02"><img src="img2.jpg" width="50" height="50" alt=""></li>
<li data-id="01"><img src="img1.jpg" width="50" height="50" alt=""></li>
</ul>

昇順ソートする別ファイル(index2.html)の記述

<ul class="Sbox">
<li data-id="01"><img src="img1.jpg" width="50" height="50" alt=""></li>
<li data-id="02"><img src="img2.jpg" width="50" height="50" alt=""></li>
<li data-id="03"><img src="img3.jpg" width="50" height="50" alt=""></li>
<li data-id="04"><img src="img4.jpg" width="50" height="50" alt=""></li>
<li data-id="05"><img src="img5.jpg" width="50" height="50" alt=""></li>
<li data-id="06"><img src="img6.jpg" width="50" height="50" alt=""></li>
<li data-id="07"><img src="img7.jpg" width="50" height="50" alt=""></li>
<li data-id="08"><img src="img8.jpg" width="50" height="50" alt=""></li>
<li data-id="09"><img src="img9.jpg" width="50" height="50" alt=""></li>
<li data-id="10"><img src="img10.jpg" width="50" height="50" alt=""></li>
</ul>

タグ要素を半分にして昇順ソートする別ファイル(index3.html)の記述

<ul class="Sbox">
<li data-id="01"><img src="img1.jpg" width="50" height="50" alt=""></li>
<li data-id="03"><img src="img3.jpg" width="50" height="50" alt=""></li>
<li data-id="05"><img src="img5.jpg" width="50" height="50" alt=""></li>
<li data-id="07"><img src="img7.jpg" width="50" height="50" alt=""></li>
<li data-id="09"><img src="img9.jpg" width="50" height="50" alt=""></li>
</ul>

liタグコンテンツを複数ページに別けて、アニメーションソート表示するデモページ

liタグコンテンツを複数ページに別けて、アニメーションソート表示するデモ

ソース元:jQuery Quicksand plugin

ソース元:jQuery Quicksand plugin

上記「ソース元」では別ファイルにわけず1ページ内で対象のliコンテンツを非表示して、ソートさせてます。
ソート時にアニメーションは「ソース元」のページ下部「Demos&Docs」ページの下にその他設定例が有ります。

 
※流用される場合は自己責任でお願いします。
 デモページタグ内のGoogleアナリティクスタグは流用しないで下さい。