//oBoxs[i].style.left=oBoxs[index].style.left; 与oBoxs[i].style.left=oBoxs[index].offsetLeft+"px";为什么不等同

来源:2-4 JavaScript实现瀑布流布局中图片排序

weibo_幸福长大了_0

2016-06-14 10:07

for(var i=0;i<oBoxs.length;i++){
            if(i<cols){
                    hArr.push(oBoxs[i].offsetHeight);
                }else{
                        var minH=Math.min.apply(null,hArr);
                        var index=getMinhIndex(hArr,minH);//封装 找最小值的索引
                        oBoxs[i].style.position="absolute";
                        oBoxs[i].style.top=minH+"px";
                        //oBoxs[i].style.left=oBoxs[index].style.left;
                        oBoxs[i].style.left=oBoxs[index].offsetLeft+"px";
                        hArr[index]+=oBoxs[i].offsetHeight;
                    }
        }
写回答 关注

1回答

  • EpisodeOne
    2016-06-15 14:40:58
    console.log(oBoxs[index].offsetLeft); //606
    console.log('@@');
    console.log(oBoxs[index].style.left);//为空

    LZ打log就知道这两个的值不同。offsetLeft可以判断一个物体的距父元素的左边距离,输出的是具体的数值;

    而style.left是一个属性,是你要赋值给他的,他本身是没有值的,就像变量一样,可以理解为他只是一个变量名字而已。

瀑布流布局

瀑布流布局是网站比较流行的一种布局方式,教你实现三大方式

97759 学习 · 736 问题

查看课程

相似问题