慕粉3236940
2016-09-05 15:20
$(function(){
waterfall();
});
var waterfall = function(){
var $boxs = $("#main>div");
var w = $boxs.eq(0).outerWidth();
//获取列数
var cols = Math.floor($(window).width()/w);
var total = w*cols;
$("#main").width(total);
var hArr = [];
$boxs.each(function(index,value){
var h = $boxs.eq(index).outerHeight();
if(index<cols){
hArr[index] = h;
}else{
var minH = Math.min.apply(null,hArr);
var minHindex = $.inArray(minH,hArr);
$(value).css({
'position':'absolute',
'top':minH+'px',
'left':minHindex*w+'px'
});
hArr[minHindex] += $boxs.eq(index).outerHeight();
}
})
}
你是不是缩小浏览器窗口? 图片的位置会改变。 你缩小窗口 刷新后会重新获取窗口的 宽度 窗口宽度变小 相应的列数就会变小 图片的位置就变小。 为什么要加上px 因为 minh 和minhindex的值 是数字 left的值是要有单位的
瀑布流布局
97759 学习 · 736 问题
相似问题