瀑布流

14 篇文章 0 订阅
5 篇文章 0 订阅

瀑布流

<!DOCTYPE html>
<html lang="ch">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        body{
            width: 100%;
            height: 100%;
        }
        .main{
            position: static;
            margin: 0;
            border: 0;
            padding: 0;
            background-color: antiquewhite;
            overflow: hidden;
        }
        .main div{
            width: 100px;
            padding: 10px;
            position: absolute;
            display: inline-block;
        }
    </style>
</head>
<body>
    <div class="main">
        <div class="box"><img style="width:100%;height: 200px"></div>
        <div class="box"><img style="width:100%;height: 151px"></div>
        <div class="box"><img style="width:100%;height: 256px"></div>
        <div class="box"><img style="width:100%;height: 331px"></div>
        <div class="box"><img style="width:100%;height: 222px"></div>
        <div class="box"><img style="width:100%;height: 444px"></div>
        <div class="box"><img style="width:100%;height: 111px"></div>
        <div class="box"><img style="width:100%;height: 531px"></div>
        <div class="box"><img style="width:100%;height: 661px"></div>
        <div class="box"><img style="width:100%;height: 145px"></div>
        <div class="box"><img style="width:100%;height: 103px"></div>
        <div class="box"><img style="width:100%;height: 133px"></div>
    </div>
</body>
<script>
	f();
    window.onresize = () => f()
    function f() {
        var box = document.getElementsByClassName("box"),
            boxWidth = box[0].offsetWidth,
            screenWidth = document.getElementsByClassName("main")[0].offsetWidth,
            cols = parseInt(screenWidth/boxWidth),
            heightArr = [];
        for(let i =0 ;i<box.length;i++){
            let boxHeight = box[i].offsetHeight,
            	left = 0,
            	top = 0;
            box[i].style.position = "absolute";
            if(i<cols){
                left = i * boxWidth;
                top = 0;
                heightArr[i] = boxHeight;
            }else{
                let num = parseInt(i%cols),
                	min = Math.min(...heightArr),
                	key = heightArr.indexOf(min);
            	left = key * boxWidth;
            	top = min;
                heightArr[key] += boxHeight;
            }
            box[i].style.left = left + "px";
            box[i].style.top = top + "px";
        }
    }
</script>
</html>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值