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

也是图片缩成一团而且都缩到第一列的问题。

function waterfall(){

var $parent=$('#main');

var $box=$('#main>.box');

var $boxWidth=$box.eq(0).outerWidth();

var cols=Math.floor($(window).width()/$boxWidth);

    $parent.css({

    'width':$boxWidth*cols+'px',

    'margin':'0 auto'

    });

 

    var arr=[];

    $box.each(function(index,element){

    var boxHeight=$box.eq(index).outerHeight();

    if(index<cols){

         arr.push(boxHeight);

    }else{

            var minH=Math.min.apply(null,arr);

            var minHIndex=$.inArray(minH,arr);

            console.log(minHIndex);

          // 这里打印出来的minHIndex是0,而且刷新会变。

            $(element).css({

            'position':'absolute',

            'top':minH+'px',

            'left':$box.eq(minHIndex).position().left+'px'

            });

            //arr[minHIndex]+=$box.eq(index).outerHeight();

    }

    });

第二列以后的图片会缩成一团,而且打印出来最小高度的索引是0,一直刷新的话还会变。

提问者:tmacluan 2016-07-05 23:54

个回答

  • 慕斯3035540
    2016-09-01 09:37:37

    arr.push(boxHeight);    ???

  • tyc1
    2016-07-06 13:55:56

    是不是你把arr[minHIndex]+=$box.eq(index).outerHeight();注释了的原因,不注释它就行了吧