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这个变量?

阅读 2.2k
2 个回答

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

大于符号的意思是,min如果大于x,那么min的值就替换为x。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题