zoukankan      html  css  js  c++  java
  • 瀑布流 无限加载。步骤详细。耐看

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8">
    <title></title>
    <style type="text/css">
    *{position: relative;}
    #box{margin: 0 auto;}
    img{ 200px;display:block;box-shadow: 2px 2px 2px #999999;position: absolute;}
    </style>
    <script type="text/javascript">
    window.onload = function(){
    let box = document.getElementById('box');
    let aimg = box.children;

    let pageW = document.body.offsetWidth;
    let imgW = aimg[0].offsetWidth;

    let col = parseInt(pageW/imgW);

    let imgML = 8;


    function waterFall(){
    aimg = box.children;
    let lineH =[];

    Array.from(aimg).forEach((img,key)=>{
    if(key < col){
    img.style.left = (imgW + imgML)*key +'px';
    lineH.push(img.offsetHeight)
    }else{
    let minHeight = lineH[0];
    let minIndex = 0;
    lineH.forEach((v,k)=>{
    if(minHeight > v){
    minHeight = v;
    minIndex = k
    }
    })

    img.style.left = aimg[minIndex].offsetLeft +'px';
    img.style.top = minHeight + 'px';
    lineH[minIndex]= minHeight + img.offsetHeight

    }
    })
    }
    waterFall()
    window.onscroll = function(){
    let cliH = clientObj.getHeight() +stObj.getTop();
    let countH = aimg[aimg.length -1].offsetTop;
    var imgDatas = [
    './si/1.jpg','./si/2.jpg','./si/3.jpg','./si/4.jpg',
    './si/5.jpg','./si/6.jpg','./si/7.jpg','./si/8.jpg',
    './si/9.jpg','./si/10.jpg','./si/11.jpg','./si/12.jpg',
    './si/16.jpg','./si/15.jpg','./si/14.jpg','./si/13.jpg',
    './si/17.jpg','./si/18.jpg','./si/6.jpg','./si/9.jpg',
    './si/13.jpg','./si/10.jpg'
    ];
    if(countH < cliH){
    let imgStr = '';
    imgDatas.forEach((v)=>{
    imgStr += `<img src =${v}></img>`
    })
    box.innerHTML += imgStr
    waterFall();
    }
    }

    }
    //获取窗口的宽度和高度
    var clientObj = {
    getHeight(){
    return window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight;
    },
    getWidth(){
    return window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth;
    }
    }
    // 获取滚动条的高度
    var stObj = {
    getTop() {
    return window.pageYOffset || document.body.scrollTop
    }
    }
    </script>
    </head>
    <body>
    <div id="box">
    <img src="./si/1.jpg" >
    <img src="./si/2.jpg" >
    <img src="./si/3.jpg" >
    <img src="./si/4.jpg" >
    <img src="./si/5.jpg" >
    <img src="./si/6.jpg" >
    <img src="./si/7.jpg" >
    <img src="./si/8.jpg" >
    <img src="./si/9.jpg" >
    <img src="./si/10.jpg" >
    <img src="./si/11.jpg" >
    <img src="./si/12.jpg" >
    <img src="./si/13.jpg" >
    <img src="./si/14.jpg" >
    <img src="./si/15.jpg" >
    <img src="./si/16.jpg" >
    <img src="./si/17.jpg" >
    <img src="./si/18.jpg" >
    <img src="./si/1.jpg" >
    <img src="./si/2.jpg" >
    <img src="./si/3.jpg" >
    <img src="./si/4.jpg" >
    <img src="./si/5.jpg" >
    <img src="./si/6.jpg" >
    <img src="./si/7.jpg" >
    <img src="./si/8.jpg" >
    <img src="./si/9.jpg" >
    <img src="./si/10.jpg" >
    <img src="./si/11.jpg" >
    <img src="./si/12.jpg" >
    <img src="./si/13.jpg" >
    <img src="./si/14.jpg" >
    <img src="./si/15.jpg" >
    <img src="./si/16.jpg" >
    <img src="./si/17.jpg" >
    <img src="./si/18.jpg" >
    </div>
    </body>
    </html>

  • 相关阅读:
    Windows10右键添加“在此处打开命令窗口"
    赋值简单理解
    应用 EditPlus 配置 Java 编译环境
    进程和线程的区别
    Java栈与堆
    进程与线程的简单解释
    java的多态性(二)
    内部类详解(很详细)
    java的super和this关键字用法总结
    Java类成员(成员变量和方法)的覆盖与隐藏归纳
  • 原文地址:https://www.cnblogs.com/CH-cnblogs/p/13526821.html
Copyright © 2011-2022 走看看