问答详情
源自:3-1 jQuery实现瀑布流布局图片定位

为什么刷新过后图片的位置会变化?而且left定义要加上居中外面的Px.每刷新一次,图片位置就不一样


$(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();

}

})

}


提问者:慕粉3236940 2016-09-05 15:20

个回答

  • 慕仰8086254
    2016-09-07 16:36:31

    你是不是缩小浏览器窗口? 图片的位置会改变。 你缩小窗口 刷新后会重新获取窗口的 宽度   窗口宽度变小  相应的列数就会变小  图片的位置就变小。 为什么要加上px  因为   minh 和minhindex的值 是数字  left的值是要有单位的