uniapp实现瀑布流

首先我们要先了解什么是瀑布流:

瀑布流(Waterfall Flow)是一种常见的网页布局方式,也被称为瀑布式布局或砌砖式布局。它通常用于展示图片、博客文章、商品等多个不同大小和高度的元素。

瀑布流布局的特点是每个元素按照从上到下、从左到右的顺序排列,并且元素的宽度固定,高度可以不同。当元素的高度不同时,下一个元素会自动填充前面较短的列,从而形成类似瀑布流的效果。

瀑布流布局的优点在于能够更好地利用页面空间,使页面看起来更加丰富和动态。它适合展示大量的图片或内容,可以吸引用户的注意力,提升用户体验。

实现瀑布流布局的关键在于使用 CSS 的 Grid 布局或 Flex 布局来控制元素的排列和位置,并结合 JavaScript 来获取数据并动态渲染页面。在瀑布流布局中,通常需要计算元素的位置和大小,以及在加载更多数据时自动调整布局。

瀑布流布局在实际应用中非常广泛,特别是在图片展示、社交媒体平台、电子商务网站等领域。它能够呈现出独特的视觉效果和良好的用户体验,为用户提供更加丰富多样的内容展示方式。

那么怎么使用uniapp实现呢?

首先处理数据

由于我是将数据分为左右两部分渲染,所以要先处理数据;

const res = await Shop();
					console.log(res);
					const halfRight = Math.ceil(res.length / 2);
					this.leftList = res.slice(0, halfRight);
					const halfLength = Math.ceil(res.length / 2);
					this.rightList = res.slice(halfLength);

然后将数据渲染到页面上

这里需要注意一下;由于瀑布流是不需要图片高度的;要让它自适应,所以要给image标签加上mode属性

<view class="list">
						<view class="shop_list" v-for="(item,index) in leftList" :key="index" @click="product(item)">
							<image :src="https + item.img" mode="widthFix"></image>
							<view class="shop_name">
								{{item.name}}
							</view>
							<view class="shop_introdu">
								{{item.introdu}}
							</view>
						</view>
					</view>
					<view class="lists">
						<view class="shop_list" v-for="(item,index) in rightList" :key="index" @click="product(item)">
							<image :src="https + item.img" mode="widthFix"></image>
							<view class="shop_name">
								{{item.name}}
							</view>
							<view class="shop_introdu">
								{{item.introdu}}
							</view>
						</view>
					</view>

最后就是调整样式

.index_shop {
		width: 100%;
		height: auto;
		display: flex;
		justify-content: space-between;
		flex-wrap: wrap;
	}
	
	.list{
		width: 50%;
		display: flex;
		justify-content: center;
		flex-wrap: wrap;
	}

.lists{
		width: 50%;
		display: flex;
		justify-content: center;
		flex-wrap: wrap;
	}

	.shop_list {
		width: 90%;
		height: auto;
		padding: 5px;
		margin: 0 auto;
		margin-top: 10px;
		background-color: #ffffff;
		border-radius: 5px;
		display: flex;
		flex-direction: column;
		align-items: flex-start;
	}

	.shop_list image {
		width: 100%;
		height: auto;
		border-radius: 5px;
	}

然后看看效果;

希望对你有所帮助;如有需要酌情修改

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
瀑布流布局是一种常见的网页设计布局,通常用于多列展示图片。该布局的特点是列宽固定,而图片根据自身高度自适应并交错排列。在uniapp实现瀑布流式页面布局有多种方法。其中一种常用的方法是使用flex布局。可以使用flex布局来实现多列的瀑布流效果,具体实现方法如下: 1. 首先,需要在自己的uniapp项目目录下创建一个组件waterfall.vue。 2. 在waterfall.vue组件中,可以使用flex布局来实现瀑布流效果。可以将图片按照固定的列数分成多个列,然后使用flex属性来自动调整图片的宽度和高度,使其自适应并交错排列。 3. 在代码实现方面,可以采用两种方式来实现瀑布流布局。一种是通过累加比较图片的高度来确定每一列的位置,另一种是通过比较父元素的高度来确定每一列的位置。 在uniapp实现瀑布流式页面布局可以参考以上的代码实现方法,根据具体需求选择合适的方式来实现多列的瀑布流效果。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [vue+uniapp瀑布流布局多种实现方式](https://blog.csdn.net/sd1sd2/article/details/128599997)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [uni-app项目瀑布流布局的实现](https://download.csdn.net/download/weixin_38642864/13680529)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值