前端学习笔记

day23
瀑布流结构

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
       
        .box {
            
            position: relative;
            left: 100px;
            
        }

        .box>div {
            position: absolute;
            width: 240px;

        }

        img {
            display: block;
        }
    </style>
</head>

<body>
    <div class="box">
        <div><img src="./img/1.jpg"></div>
        <div><img src="./img/2.jpg"></div>
        <div><img src="./img/3.jpg"></div>
        <div><img src="./img/4.jpg"></div>
        <div><img src="./img/5.jpg"></div>
        <div><img src="./img/6.jpg"></div>
        <div><img src="./img/7.jpg"></div>
        <div><img src="./img/1.jpg"></div>
        <div><img src="./img/2.jpg"></div>
        <div><img src="./img/3.jpg"></div>
        <div><img src="./img/1.jpg"></div>
        <div><img src="./img/2.jpg"></div>
        <div><img src="./img/3.jpg"></div>
        <div><img src="./img/4.jpg"></div>
        <div><img src="./img/5.jpg"></div>
        <div><img src="./img/6.jpg"></div>
        <div><img src="./img/7.jpg"></div>
        <div><img src="./img/1.jpg"></div>
        <div><img src="./img/2.jpg"></div>
        <div><img src="./img/3.jpg"></div>

    </div>


    <script>

        window.onload = function () {

            var data = ["./img/4.jpg", "./img/5.jpg", "./img/6.jpg", "./img/7.jpg"]


            var oBox = document.querySelector(".box")
            var oDiv = oBox.getElementsByTagName("div")
            var mg = 20
            var perWidth = oDiv[0].offsetWidth + mg;
            var col = parseInt(oBox.offsetWidth / perWidth)
            var getwid = [];

            for (i = 0; i < col; i++) {
                oDiv[i].style.top = 0;
                oDiv[i].style.left = perWidth * i + "px";
                getwid.push(oDiv[i].offsetHeight)


            }

            //找最小值得索引
            function getminindex(arr) {
                var min = 0


                for (i = 1; i < arr.length; i++) {
                    if (arr[min] > arr[i]) {
                        min = i
                    }
                }
                return [min, arr[min]]
            }
            //把剩余得div依次放到最小值索引得下面
            function lastdiv(num) {
                for (var i = num; i < oDiv.length; i++) {
                    var mmin = getminindex(getwid)
                    oDiv[i].style.top = mmin[1] + mg + "px";
                    oDiv[i].style.left = oDiv[mmin[0]].style.left;
                    getwid[mmin[0]] += oDiv[i].offsetHeight + mg

                }

            }
            lastdiv(col)

            //根据滑轮滚动的距离添加div 
            window.onscroll = function () {
                var disscroll = document.documentElement.scrollTop
                var dispage = document.documentElement.clientHeight
                if (disscroll >= getminindex(getwid)[1] - dispage) {


                    data.forEach(function (e) {
                        var odiv = document.createElement("div")
                        odiv.innerHTML = "<img src='" + e + "'>"
                        oBox.appendChild(odiv);
                    });
                    var oDiv = oBox.querySelectorAll("div")
                    lastdiv(oDiv.length - data.length)

                }

            }


        }


    </script>


    </script>
</body>

</html>

相关推荐

  1. 前端学习笔记

    2024-06-09 23:50:02       58 阅读
  2. 前端学习笔记

    2024-06-09 23:50:02       63 阅读
  3. vue前端学习笔记

    2024-06-09 23:50:02       72 阅读
  4. 前端】JQuery(学习笔记

    2024-06-09 23:50:02       53 阅读
  5. 前端学习笔记

    2024-06-09 23:50:02       31 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-06-09 23:50:02       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-06-09 23:50:02       106 阅读
  3. 在Django里面运行非项目文件

    2024-06-09 23:50:02       87 阅读
  4. Python语言-面向对象

    2024-06-09 23:50:02       96 阅读

热门阅读

  1. Web前端的工作内容:深度解析与探索

    2024-06-09 23:50:02       30 阅读
  2. ubuntu, esp-idf, arduino

    2024-06-09 23:50:02       31 阅读
  3. Golang time CST以及UTC介绍

    2024-06-09 23:50:02       27 阅读
  4. Go基础、面试、底层

    2024-06-09 23:50:02       29 阅读
  5. Ant Design Vue 动态表头并填充数据

    2024-06-09 23:50:02       28 阅读
  6. 记录一个Qt调用插件的问题

    2024-06-09 23:50:02       26 阅读
  7. uniapp 使用秋云ucharts,实现线状图横线滚动

    2024-06-09 23:50:02       32 阅读
  8. 排序---冒泡排序及其优化

    2024-06-09 23:50:02       31 阅读
  9. string类的模拟实现的一些改进

    2024-06-09 23:50:02       40 阅读
  10. 快速排序(Quick_Sort)

    2024-06-09 23:50:02       26 阅读
  11. 力扣算法题:轮转数组 -- 多语言实现

    2024-06-09 23:50:02       32 阅读
  12. 爬虫实现思路

    2024-06-09 23:50:02       25 阅读
  13. GameDriver XR测试自动化工具概述

    2024-06-09 23:50:02       33 阅读