利用js写一个根据高度插入的瀑布流

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>瀑布流</title>
		<style type="text/css">
			*{
				margin: 0;
				padding: 0;
			}
			
			ul{
				list-style: none;
			}
			.root{
				width: 1000px;
				border: 2px solid gold;
				/*高度需要根据随机不断变化 */
				margin: 30px auto;
				overflow: hidden;
				/*弹性布局  有坑!!!*/
				/*display: flex;
				justify-content: space-around;*/
			}
			.root ul{
				width: 240px;
				border: 1px solid seagreen;
				float: left;
				color: white;
				margin: 4px;
				text-align: center;
				font-size: 90px;
			}
		</style>
	</head>
	<body>
		<!--底部的div-->
		<div class="root">
			<ul></ul>
			<ul></ul>
			<ul></ul>
			<ul></ul>
		</div>
	</body>
</html>
<script type="text/javascript">
	
	//1.获取标签
	var ulArray = document.querySelectorAll("ul");
	//2.定义变量
	
	//3.函数
	//封装随机数
	function randomNum(min, max){
		return Math.floor(Math.random() * (max - min + 1) + min);
	}
	//封装随机背景色
	function randomColor(){
		var red = randomNum(0, 255);
		var green = randomNum(0, 255);
		var blue = randomNum(0, 255);
		return "rgb("+ red + "," + green + "," + blue + ")";
	}
	
	//循环50次  准备创建50个li
	for(var i = 0; i < 50; i++){
		var li = document.createElement("li");
		li.innerHTML = i + 1;
		li.style.backgroundColor = randomColor();
		//随机一个高度
		var height = randomNum(100, 500);
		li.style.lineHeight = height + "px";
		li.style.height = height + "px";
		//想想办法!!看哪个ul高度最小!! 谁最矮  就把新建的li放在哪个ul中!!
		//定义变量    每次循环都假设下标0的ul 最矮!!
		var index = 0; //用来记录最矮的ul的下标!!!
		//循环遍历 4个ul  下标0--3
		for(var j = 1; j < ulArray.length; j++){
			if(ulArray[index].offsetHeight > ulArray[j].offsetHeight){
				index = j;
			}
		}
		//index 就记录着 最矮的 ul的下标!! 类似10个随机数,找最大最小值以及位置
		ulArray[index].appendChild(li);
		
	}
	
	
	
	
</script>

运行结果:
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 非常感谢您的提问,我很乐意为您回答。我们可以使用HTML5和CSS3来构建一个瀑布商品列表,主要步骤如下:1.创建一个容器,用于存放商品列表;2.使用CSS的float属性来确定商品列表的位置;3.使用JavaScript来根据用户的滚动来加载更多的商品;4.使用AJAX获取服务器端的数据;5.将商品列表插入到容器中;6.使用CSS3实现动画效果。以上就是我们一个H5瀑布商品列表的基本步骤,希望能够给您带来帮助。 ### 回答2: H5瀑布商品列表是一种常见的网页布局方式,可以在移动端设备上展示商品列表,并呈现出瀑布式的效果。下面是一个简单的H5瀑布商品列表的实现思路: 1. 首先,我们需要创建一个包含商品信息的数组,每个商品对象包含商品的名称、图片地址、价格等信息。 2. 在HTML中,创建一个包含商品列表的容器元素,如一个div容器。 3. 使用CSS设置容器元素为瀑布布局,并设置列数和每列之间的间距。 4. 使用JavaScript动态生成商品列表,并将商品图片、名称和价格等信息插入到每个商品项中。 5. 为了实现瀑布效果,我们需要计算每列的高度,并将新的商品项插入高度最小的列中。 6. 监听窗口的滚动事件,当滚动到底部时,动态加载更多的商品。 7. 根据需要,可以为商品列表添加筛选、排序等功能。 以上的步骤只是一个简单的示例,实际的瀑布商品列表可能需要更多的细节和功能。可以根据具体的需求,进一步完善和优化这个H5瀑布商品列表。 ### 回答3: 瀑布商品列表是一种常见的网页设计布局,可以让商品以瀑布的方式显示在页面上,增加页面的美观度和用户体验。下面简要介绍如何创建一个基础的H5瀑布商品列表。 首先,在HTML中创建一个包含商品列表的容器,可以使用一个<ul>标签来实现,例如: ``` <ul id="goodsList"></ul> ``` 接下来,通过JavaScript动态加载商品数据并添加到列表中。首先,定义一个数组存储商品数据,例如: ``` var goodsData = [ {id: 1, name: '商品1', img: 'img1.jpg', price: '99'}, {id: 2, name: '商品2', img: 'img2.jpg', price: '149'}, ... ]; ``` 然后,使用JavaScript遍历商品数组,并将每个商品的HTML结构动态添加到列表中。这里可以使用字符串拼接的方式构建商品的HTML,例如: ``` var html = ''; for (var i = 0; i < goodsData.length; i++) { html += '<li class="goods-item">'; html += '<img src="' + goodsData[i].img + '" alt="' + goodsData[i].name + '">'; html += '<h3>' + goodsData[i].name + '</h3>'; html += '<p class="price">¥' + goodsData[i].price + '</p>'; html += '</li>'; } ``` 最后,将构建好的HTML插入到页面中的商品列表容器中,例如: ``` document.getElementById('goodsList').innerHTML = html; ``` 在CSS中通过定义适当的样式来实现瀑布布局,例如设置商品项的宽度和浮动方式,并添加适当的间距等样式。 以上是一个简单的H5瀑布商品列表的实现方法,可以根据需求对样式和功能进行进一步的修改和增强。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值