问答详情
源自:2-4 JavaScript实现瀑布流布局中图片排序

各位好,我想请教一下,为什么div设置position:absolute后改变top样式没有反应?就差最后一步,心急如焚!

552ca6460001cde702610031.jpg

552ca6480001507705000125.jpg

老师好,同学们好。如图,已知 console.log(minH);能打印上面图片中最小高度的图片的高度,但为什么我用top:minH;设置图片高度还是没有改变,覆盖了原来的图片呢?谢谢各位!

    for (var i = 0; i < oBoxs.length; i++) {
        if (i < cols) {//第一行图片
            hArr.push(oBoxs[i].offsetHeight);
        }
        else {//下一行图片
            var minH = Math.min.apply(null, hArr);//获取数组中最小高度
            console.log(minH);//能打印,minH有效
            var index = getMinhIndex(hArr, minH);//获取数组中最小高度元素的下标
            //改变目标box的位置
            oBoxs[i].style.position = 'absolute';
            oBoxs[i].style.top = minH + 'px;';//top改变无效
            oBoxs[i].style.left = oBoxW * index + 'px';//left改变有效
        }
    }


提问者:Devisn 2015-04-14 13:36

个回答

  • 不曾停息
    2015-05-22 14:41:23

        for (var i = 0; i < oBoxs.length; i++) {

            if (i < cols) {//第一行图片

                hArr.push(oBoxs[i].offsetHeight);

            }

            else {//下一行图片

                var minH = Math.min.apply(null, hArr);//获取数组中最小高度

                console.log(minH);//能打印,minH有效

                var index = getMinhIndex(hArr, minH);//获取数组中最小高度元素的下标

                //改变目标box的位置

                oBoxs[i].style.position = 'absolute';

                oBoxs[i].style.top = minH + 'px;';//top改变无效

                oBoxs[i].style.left = oBoxW * index + 'px';//left改变有效

                hArr[index] += oBoxs[i].offsetHeight;//****************注意 还要修改最小值那一列的高度        

    }

            

        }