类似于mason .js或同位素.js的打包布局,不按现有元素排序

bin-packaging layout with similar to masonry.js or isotope.js without ordering by existing elements

本文关键字:js 排序 元素 布局 同位素 mason 包布局 类似于      更新时间:2023-09-26

我试图创建布局,将填充元素的方式尽量减少他们之间的空白。问题是,我尝试过的所有库都按照定义的方式从左到右、从上到下对项进行排序。下面是一些例子:

<div id="layout_wrapper">
<div class="item">1</div>
<div class="item">2</div>
<div class="item">3</div>
<div class="item">4</div>
</div>

这些项将从左到右,从上到下填充layout_wrapper,从1开始,以4结束。但是这样可能会有空白,必须用其他合适的项目填充,比如1,4,3,2,这将是填充布局的最佳方式。

但是我做不到。我知道,这是少数情况下,如动态内容加载时,内容必须放置的方式,但在我的情况下,我需要一个其他的行为。

所以,有人知道如何使这个工作在砌体。js或任何其他类似的库使装箱算法工作的方式,我需要吗?谢谢。

2d打包是非常困难的,您可以尝试kd-tree并递归地细分树(http://www.blackpawn.com/texts/lightmaps/default.html)。或者有完美的砌筑(http://www.drewdahlman.com/meusLabs/?p=218)。我从来没有试过,但它似乎是一个精确的求解器。