filter()

更新日: 2018-07-05

grid.filter( predicate, [options] )

アイテムをフィルタリングします。 引数であるpredicateは、関数または文字列である必要があります。。 プレディケートコールバックはインスタンス内の全てのアイテムに対して実行されます。 predicateの戻り値がtureの場合、 対象のアイテムが表示され、他は全て非表示になります。 プレディケートコールバックは、引数としてアイテムインスタンスを受け取ります。 predicateが文字列の場合、 セレクタとしてみなされ、 インスタンス内の全てのアイテムを、 ネイティブのelement.matches()メソッドを使って確認します。 一致する全てのアイテムが表示され、他は全て非表示になります。


パラメータ

predicate: function, string
プレディケートコールバックまたは、セレクタ。
options.instant: boolean
  • 初期値 : false
  • アニメーション無しでアイテムの表示/非表示を切り替えるかを指定します。 オプションです。
options.onFinish: function
アイテムが表示/非表示を切り替えた後に呼び出されるコールバックです。 オプションです。
options.layout: boolean, function, string
  • 初期値 : true
  • デフォルトでは、このメソッドの最後にgrid.layout()メソッドが呼び出されます。 この引数を指定すると、grid.layout()メソッドの呼び出しを制御することができます。grid.layout()メソッドを完全に無効にするには、falseを指定します。 また、grid.layout()メソッドのコールバックを指定することもできます。 さらに、'instant'を指定すると、 アニメーション無しで、すぐにgrid.layout()メソッドが実行されます。 オプションです。

戻り値

無し*1

*1 ソース上はインスタンスを返しています。


// "data-foo"属性を持った全てのアイテムを表示します。
grid.filter(function (item) {
  return item.getElement().hasAttribute('data-foo');
});
 
// シンプルに書くなら、
grid.filter('[data-foo]');
 
// "foo"クラスを持ったアイテムを表示します。
grid.filter('.foo');

デモ

"foo"クラスを持ったアイテム(アイテム3)のみを表示します。

アイテム1
アイテム2
アイテム3

JavaScript

var grid = new Muuri('.grid');
grid.filter('.foo');

HTML

<div class="grid">
  <div class="item">
    <div class="item-content">
      アイテム1
    </div>
  </div>
  <div class="item">
    <div class="item-content">
      アイテム2
    </div>
  </div>
  <div class="item foo">
    <div class="item-content">
      アイテム3
    </div>
  </div>
</div>

CSS

.grid {
  position: relative;
}
 
.item {
  display: block;
  position: absolute;
  width: 100px;
  height: 100px;
  margin: 5px;
  z-index: 1;
  color: #000;
  border: 1px solid #000;
}
 
.item-content {
  position: relative;
  width: 100%;
  height: 100%;
}


© 2015 Haltu Oy. Licensed under the MIT license

このコンテンツはHaltuによるMuuriドキュメントを翻訳/改変したものです。