瀑布流的实现原理就是通过比较每一列的高度,如果这一列高度低的话就在这一列进行添加;
实现步骤:
1.获取放图片的div和div里面的图片元素;
2.通过window.οnlοad=function(){}在页面加载的时候执行定义的函数;
3.定义一个变量columns计算出页面中有多少列=外层盒子的宽度box.offsetWidth/子元素的宽度items[0].offsetWidth最后计算的时候用parseInt除成整数
4.循环所有的元素,在循环里面判断如果i小于columns的话就把每一项的top值设置为0;把元素的left值设置为元素的宽度乘以下标值;然后在循环外面定义一个空数组
把每一项的高度都添加进去(items[i].offsetHeight);然后就是i>columns的逻辑,在这里面定义一个空变量为minHeight为最小高度,这个最小高度让他默认为0;
在定义一个变量为Index为0;然后在写一个循环,循环内容就是每个上面存储每一项高度的数组,然后再通过if判断找出最小的高度值,逻辑就是如果当前循环的高度小于
上面定义的minHeight最小高度的话,就让minHeight等于这个高度,然后再让index等于这个元素的下标;
5.最后一步就是把后面的元素插入到高度最小的元素下面,让循环的当前项的top值为最小高度,让他到这个元素的下面;left值为当前项距离外层盒子的Left值;