16

これは説明が難しいかもしれません。事前定義されたグリッド内のスペースを検出し、このスペースに収まる要素を移動および配置できる jQuery masonry のような同様のプラグインはありますか?

私の質問を説明する他のすべての方法は複雑になるので、私が何を意味するかを示すために簡単な画像を描きました.

注意: これは流動的なレスポンシブ Web デザインです。

ここに画像の説明を入力

したがって、私のdom-orderは1,2,3です。ただし、特定の範囲内でレイアウトを折りたたむときmedia-queryは、dom の順序を動的に切り替えたり、要素を別の場所に配置したりしたいと考えています。あなたが私のサンプルで見るように。

jQuery MasonryjQuery Isotopeのようなものがあることは知っていますが、これらのプラグインはどちらもグリッドのすべての空きスペースを埋めるわけではありません。たとえば、この同位体のスクリーンショットをチェックしてください…</p>

ここに画像の説明を入力

要素が 1 つ欠けています。もちろん、ほとんどの場合、これは要素の順序を維持したいものです。私の場合、順序は気にしません。すべてのスペースとギャップを埋めたいだけです。上の私のスケッチとまったく同じようitem-nr-3に、空のギャップに合わせて上に移動する必要があります(収まるからです)。そして、同じサイズがもう一つあればitem、下の隙間に収まりますitem-nr-3

それはどういうわけか可能ですか?それを行うjQueryプラグインはありますか?それとも他にイデがありますか?


いくつかの追加情報:items私が話している と ボックスはすべて に設定されてbox-sizing:border-boxいるので、パディングやマージンについて心配する必要はありません。


更新: これは問題のライブ サンプルです: http://jsfiddle.net/r79u2/1/

4

1 に答える 1

14

編集

これを投稿して以来、「Gutters」とコールバックのサポートを追加しました

あなたが探していることを行うプラグインを書きました。正確ではありませんが、それを使用して正しい方向に向けることができます...

プラグイン - https://github.com/DrewDahlman/Mason

理論に関するブログ投稿 - http://www.drewdahlman.com/meusLabs/?p=218

アイデアはこれです - 私たちは多くの要素があることを知っています - メイソンの仕事は定義されたスペースを左に浮いているこれらの要素で埋めることです - これは「ギャップ」をもたらすので、それらのギャップを検出し、何らかの形でそれらを埋める必要があります. これを行うには、既存の要素をコピーするか、そのスペースを埋めることができる「フィラー」要素のバケツを用意します。

OP - 何らかのコントロールを備えたランダムなサイズのグリッドを探している場合、これでうまくいきます。私はこのフィドルを作りました - http://jsfiddle.net/bdGVr/

実行するたびに、またはグリッドが再描画するウィンドウのサイズを変更するたびに気付くでしょう。これにより、ギャップが赤いブロックで埋められます。

のオプションで遊んでmason.js、コンテナに対するサイズの比率と、可能なサイズの組み合わせを調整できます。

例 - 1.8 の比率と 1x3 のサイズは、1.8 x 1 = 高さ、1.8 x 3 = 幅を意味します。

于 2013-01-07T17:37:34.847 に答える