Masonry 3 添加了一个方法“stamp”,非常适合将某个元素固定到位。但是,它似乎无法正常工作/正如我所期望的那样。
以大卫·德桑德罗本人为例:
http://codepen.io/desandro/pen/wKpjs
一切都很好。现在我们将固定元素向下移动 200px,以便在固定元素上方有足够的空间:
http://codepen.io/anon/pen/eILHG
如您所见,冲压元素上方没有任何元素。有什么我们可以做的吗,或者它只是它应该工作的方式?
Masonry 3 添加了一个方法“stamp”,非常适合将某个元素固定到位。但是,它似乎无法正常工作/正如我所期望的那样。
以大卫·德桑德罗本人为例:
http://codepen.io/desandro/pen/wKpjs
一切都很好。现在我们将固定元素向下移动 200px,以便在固定元素上方有足够的空间:
http://codepen.io/anon/pen/eILHG
如您所见,冲压元素上方没有任何元素。有什么我们可以做的吗,或者它只是它应该工作的方式?
它与 Masonry 的编写方式有关,当它执行戳记事件时,它会根据当前列 Y 值和戳记偏移量之间的最大值为列分配 Y 值,所以在这种情况下,因为您have position: absolute
,它将该列的 Y 列值指定为标记块的底部,因此除了标记之外,该列中没有任何内容。由于manageStamps
是触发时调用的第一件事layout
,因此解决方法是通过重写一些 Masonry 来在每次进入列范围时将它们定位(以及任何不在列范围内的)放置一个项目,但随着邮票/区块数量的增加,该操作的成本会更高。
编辑:顺便说一句,Packery 解决了这个问题,它也是同一个人的一个项目(虽然有许可证费用)。