layout
更新日: 2019-12-19
アイテムのレイアウトを定義します。 このページでは(全く)記載していませんが、 独自のレイアウトアルゴリズムを指定したい場合に、関数を渡すこともできます。 (ソースとともにあらんことを)
- 初期値 :
{fillGaps: false, horizontal: false, alignRight: false, alignBottom: false}
- 値 :
function
、object
デフォルトのレイアウトアルゴリズムを設定するオプションは以下のとおりです。
fillGaps
: boolean- 初期値 :
false
true
を指定した場合、 アルゴリズムは全てのアイテムを順番に確認し、 各アイテムを配置可能な最初のスロットに配置します。 これは、前の要素のスロットよりも前に、空きスロットがあったとしても同様です。 実際には、視覚的にアイテムが順序よく並ばない可能性がありますが、 グリッドの隙間は少なくなります。 このオプションのデフォルトはfalse
です。 基本的に、レイアウトを計算する時には、常に以下の条件が適用されます。 (alignRight
とalignBottom
がfalse
であることを前提とします。)nextItem.top > prevItem.top || (nextItem.top === prevItem.top && nextItem.left > prevItem.left)
これはアイテムが視覚的に順番に表示されていることを表します。
- 初期値 :
horizontal
: boolean- 初期値 :
false
true
を指定した場合、 グリッドはランドスケープモード(横長のモード)になります。 (グリッドが右に拡がります) 水平スクロールのサイトで使用します。false
の場合、ポートレートモードになり、下方向へ拡がります。
- 初期値 :
alignRight
: boolean- 初期値 :
false
true
の場合、アイテムが右から左に並べられます。
- 初期値 :
alignBottom
: boolean- 初期値 :
false
true
の場合、アイテムが下から上に並べられます。
- 初期値 :
rounding
: boolean- 初期値 :
true
true
のを指定した場合、 レイアウト計算時にMath.round()
を使って、 自動でアイテムサイズを丸めます。 正しいサイズを使うにはfalse
を指定します。 実際には、アイテムに相対的なサイズ(%
、em
、rem
等)を指定している場合は、false
にする必要があります。 アイテムサイズにpx
を指定している場合、true
のままが良いでしょう。
- 初期値 :
var grid = new Muuri(elem, {
layout: {
fillGaps: true,
horizontal: true,
alignRight: true,
alignBottom: true,
rounding: false
}
});
デモ
設定に従ってアイテムをレイアウトしています。
アイテム1
アイテム2
アイテム3
アイテム4
アイテム5
アイテム6
JavaScript
var grid = new Muuri('.grid', {
layout: {
fillGaps: true,
horizontal: false,
alignRight: true,
alignBottom: true,
rounding: false
}
});
HTML
<div class="grid">
<div class="item no1">
<div class="item-content">アイテム1</div>
</div>
<div class="item no2">
<div class="item-content">アイテム2</div>
</div>
<div class="item no3">
<div class="item-content">アイテム3</div>
</div>
<div class="item no4">
<div class="item-content">アイテム4</div>
</div>
<div class="item no5">
<div class="item-content">アイテム5</div>
</div>
<div class="item no6">
<div class="item-content">アイテム6</div>
</div>
</div>
CSS
.grid {
position: relative;
width: 15em;
}
.item {
display: block;
position: absolute;
margin: 5px;
z-index: 1;
color: #000;
border: 1px solid #000;
}
.no1 {
width: 8em;
height: 8em;
}
.no2 {
width: 5em;
height: 3em;
}
.no3 {
width: 4em;
height: 6em;
}
.no4 {
width: 2em;
height: 8em;
}
.no5 {
width: 7em;
height: 4em;
}
.no6 {
width: 10em;
height: 3em;
}
.item-content {
position: relative;
width: 100%;
height: 100%;
}
© 2015 Haltu Oy. Licensed under the MIT license
このコンテンツはHaltuによるMuuriドキュメントを翻訳/改変したものです。