定位版瀑布流带缝隙

<!DOCTYPE html>

<html>


<head>

<meta charset="UTF-8">

<title></title>

<style type="text/css">

* {

margin: 0;

padding: 0;

}

#flow {

list-style: none;

margin: 0 auto;

position: relative;

}

#flow li {

position: absolute;

/*font-size: 50px;*/

background-color: yellow;

width: 200px;

/*border: 1px solid cyan;*/

color: deeppink;

}

img{

width: 100%;

height: 100%;

}

</style>

</head>


<body>

<ul id="flow">

<!--<li></li>-->

</ul>

<script type="text/javascript">

// 定义一个随机函数,用于生成随机的高度

function randH(min, max) {

return Math.floor(Math.random() * (max - min + 1) + min);

}

var flow = document.getElementById("flow");

//根据自己的documentElement。clientWidth计算出来你有多少列

var cols = parseInt(document.documentElement.clientWidth / 200);


// 左边距

var leftSpace = 10;

// 间距

var KongXi = 10;


// 初始化列高数组

var arrH = [];

for (var i = 0; i < cols; i++) {

arrH[i] = 10;

}

// 用for循坏生成50个小块

for (var j = 0; j < 50; j++) {

var li = document.createElement("li");

li.innerHTML = "<img src='img/a"+ (j+1) + ".jpg'/>";

li.style.height = randH(100, 300) + "px";

// 求最短列

var minH = arrH[0];

var minI = 0;

for (var k = 0; k < arrH.length; k++) {

if (minH > arrH[k]) {

minH = arrH[k];

minI = k;

}

}

// 定位li

// 定位li的left

li.style.left = leftSpace + minI * (200 + KongXi) + "px";

li.style.top = arrH[minI] + "px";

// 添加这个li

flow.appendChild(li);


// 更新最短列高度数组

arrH[minI] = arrH[minI] + li.offsetHeight + KongXi;

}

</script>

</body>


</html>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值