想要实现瀑布流布局效果,从左到右依次显示,css布局方式不能满足我们暂时的需要。参考小红书的瀑布效果。小红书分为左右两栏,可以按照奇数和偶数显示。但是来了问题,随着每个元素高度的不确定性,很有可能会出现左右列高度相差较大的情况。解决方案:要解决这个问题,我们需要找出每个元素的高度不同的原因,通常是图片的高度,或者是根据条件显示的一些区域。建议只有图片的高度不同,其他部分的高度保持不变,这样便于我们计算。大致思路是获取左右两列的高度,计算左右两列的高度,请输入代码差值,将两列的差值移动到阈值的1/2,如图:上面是一个理想状态,但是我们不能切割元素,我们需要知道在高度最高的那一侧是否有适合移动的元素。如果高度最高的列中高度最小的元素minH小于差分阈值,那么我们就可以移动了,我们可以取长边和差分的差值。最近元素minH的二分之一(通常是高度最小的那个,也可以通过trick移动高度最小的那个)。如果高度最小的元素大于差值,则不需要移动。那么如何移动呢,默认是给元素一个属性position,取值为center,如果要让元素向左移动,则给元素一个属性:position:left;先按照position属性显示,再按照奇偶数显示,如下:至此,高差大的问题就可以解决了。我们如何计算两列的高度?重点是获取图片的宽高,这样我们就可以知道两列的高度了。这里有两种情况:1、接口返回图片的宽高。接口返回图片的宽高,所以我们可以直接加上图片的高度来比较两列的高度就是高度差。如果上边的minH小于两列高度的阈值差,即minH