猿问

js瀑布流,寻找最小高度的一点疑问。

//获取到所有的ul

var ulArr = document.querySelectorAll('ul');


function crearteImg (count) {


    //循环创建

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

        var img = document.createElement('img');

        img.src = 'girl/' + count[i] + '.jpg';

        var li = document.createElement('li');

        li.appendChild(img);

        //假设一个最短的ul

        var minHeightUl = ulArr[0];

        //循环找到每次最短的然后添加图片

        for (var j = 0; j < ulArr.length; j++) {

            if (minHeightUl.offsetHeight > ulArr[j].offsetHeight) {

                minHeightUl = ulArr[j];

            }

        }

        minHeightUl.appendChild(li);

    }


}

在这个函数中,minHeightUl.offsetHeight > ulArr[j].offsetHeight这一句百思不得其解,高度最小的那个ul不是应该比数组中循环出来的任意ul都小吗?为什么会用大于符号呢?如果要表示的是“ulArr中任意ul的高度都大于循环出的最小值”为什么要用minHeightul这个变量?

沧海一幻觉
浏览 531回答 1
1回答

缥缈止盈

先将minHeightUl的设成ulArr[0],如果ulArr数组中其他元素的offsetHeight比之前设置的最小值小,就把该元素赋值给minHeightUl,这个思路没有问题。这样for循环下来,只要有元素的offsetHeight比赋值好的minHeightUl的offsetHeight小,肯定会被重新赋值给minHeightUl。
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答