老师的代码,改变窗口大小时还是会出现问题,该怎么解决
定义好main盒子的宽度再调整就不会出现问题了
源码里用clientWidth来定义列数,又用列数定义main的宽,改变窗口大小后触发滚动事件时,clientWidth会发生变化,所以列数会发生变化。如果是缩小,那么原来在第一行的部分浮动元素会被挤到下面,变成绝对定位,页面重排,没有问题;但是放大的话,列数num变大,原来在第二列的元素是绝对定位,不会回到第一排,所以部分i<num的aPin[i]仍在第二排,而在waterfall函数的for循环中,会把i<num的aPin[i]当成第一排进行排版,导致页面出现错误。可以在for循环面前加一个循环,把i<num的aPin[i]的绝对定位样式去掉,就不会有这个问题了。