前段时间写移动端,用到了瀑布流,一开始用 css 的 column-count 来写,都写完了,效果也不错,结果一加载数据就废了。还是老老实实用 js 计算位置吧。 基础思路 整体实现: 一个不限制高度的容器,定位搞成 position: relative,里面所有卡片通过计算位置,实现瀑布流。 计算的实现: 所有卡片都使用绝对布局,在 top: 0, left: 0初始化。然后按顺序计算每一个卡片的高度,位置信息保存起到一个对象中,每一次计算更新该对象的值,找到最短的一列,将当前卡片排到该列中。 代码实现 基础内…