1

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

<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 - 将是填充布局的最佳方式。

但我无法完成这项工作。我知道这对于动态内容加载等情况来说是少数,当内容必须以它的方式放置时,但在我的情况下,我需要其他行为。

那么,有没有人知道如何在 masonry.js 或任何其他类似的库中使 bin 打包算法以我需要的方式工作?谢谢。

4

1 回答 1

1

2d bin-packing is very difficult you can try a kd-tree and recursively subdivide the tree (http://www.blackpawn.com/texts/lightmaps/default.html). Or there is the perfect masonry (http://www.drewdahlman.com/meusLabs/?p=218). I have never tried it but it seems to be an exact solver.

于 2013-05-29T15:06:15.607 回答