Muuriは、Pinterest風のレイアウトを実現することができるMasonry系のスクリプトです。
表示や動きについては、デモページでご確認いただけます。
Muuriの使い方
Muuri・Velocity・Hammer.jsのダウンロードと設置
Muuriを利用するには、VelocityとHammer.jsも必要なので、それぞれGitHubからダウンロードします。
サーバーに設置したスクリプトをそれぞれ読み込みます。
<script src="velocity.js"></script> <script src="hammer.js"></script> <script src="muuri.js"></script>
要素のマークアップ
各要素は以下のようにマークアップします。
<div class="grid"> <div class="item"> <div class="item-content"> This can be anything. </div> </div> <div class="item"> <div class="item-content"> <div class="my-custom-content"> Yippee! </div> </div> </div> </div>
gridで全体を内包し、各アイテムはitemクラスとitem-contentクラスで内包します。
CSSの追加
CSSには、以下をそのまま追加します。
.grid { position: relative; } .item { display: block; position: absolute; width: 100px; height: 100px; margin: 5px; z-index: 1; } .item.muuri-dragging, .item.muuri-releasing { z-index: 2; } .item.muuri-hidden { z-index: 0; } .item-content { position: relative; width: 100%; height: 100%; }
スクリプトの初期化
最後にスクリプトを初期化して実行させます。
<script> var grid = new Muuri({ container: document.getElementsByClassName('grid')[0], items: [].slice.call(document.getElementsByClassName('item')) }); </script>
記述場所は、</body>の直前でOKです。
あとがき
レスポンシブにも対応していて、ブラウザの幅を縮めていくと、アニメーションしながら要素が移動していくのがいい感じですね。
なお、Muuriにはオプションも用意されています。詳しくはGitHubの説明をご参照ください。