JSFiddle - React, Tailwind, and code Playground

by dtdxrk

HTML

<div id="text">
    <h1>Js瀑布流布局(固定4列 滚动条向下加载数据)</h1>
    <p>1.添加4个ul并列显示 添加数据结构</p>
    <p>2.随机分配15张图片到li里 http://greencat.w211141.fxdns.cn/jsplay/waterfull/images/01.jpg - 15.jpg</p>
    <p>3.当滚动条快移动到页面底部时 添加li</p>
</div>
<div id="warp"></div>

CSS

*{ margin:0; padding:0;}
    body{ font:12px '微软雅黑', arial, \5b8b\4f53, sans-serif;background: #efefef;line-height: 1.5}
    #text{background: green;color: #fff;padding-bottom: 10px;}

    #warp{width:960px; margin:10px auto 0; overflow:hidden;}
    #warp ul{float: left; width: 240px; overflow: hidden;font-size: 0;}
    #warp ul li{border: 1px solid #ccc;background: #fff;width: 220px;margin-bottom: 10px;line-height: 1;}
    #warp ul li img{ display: block;margin: 10px auto;}
    #warp ul li p{ text-align: center;font-size: 12px;margin-bottom: 10px;}

JavaScript

(function(){
var warp = document.getElementById("warp");
    
    //添加4个ul 增加li
    for(var i=0; i<4; i++){
        var ul = document.createElement("ul");
        for(var m=1; m<5; m++){
            var li = document.createElement("li"),
                number = random();
            li.innerHTML = "<img src='http://vvgr.svfree.net/Waterfull/images/"+ number +".jpg'><p>"+ number +".jpg</p>"
            ul.appendChild(li);
        }
        warp.appendChild(ul);
    }

    //15个随机数
    function random(){
        var number = Math.round(Math.random()*15);
        if(number<10) number = "0"+number;
        if(number==0) number = "15";
        return number;
    }

    window.onscroll = function(){
        var pageHeight = document.documentElement.scrollHeight || document.body.scrollHeight,   //获取页面总高度(总高度 = 卷去高度 + 可视区域高度)
            getScrollTop = document.documentElement.scrollTop || document.body.scrollTop,   // 获取页面卷去的高度
            bodyHeight = document.documentElement.clientHeight || document.body.clientHeight;   //获取页面可视区域宽度
        if(getScrollTop+bodyHeight+300 > pageHeight){
            var uls = warp.getElementsByTagName("ul");
            for(var i=0; i<uls.length; i++){
                var li = document.createElement("li"),
                    number = random();
                li.innerHTML = "<img src='http://vvgr.svfree.net/Waterfull/images/"+ number +".jpg'><p>"+ number +".jpg</p>"
                uls[i].appendChild(li);
            }
        }
    }
})();