当前位置: 首页 > news >正文

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="list"><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;}.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;}

然后看看效果;

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

http://www.lryc.cn/news/213073.html

相关文章:

  • 15. 机器学习 - 支持向量机
  • 如何根据进程号查询服务的端口号
  • 2.10、自定义量化优化过程
  • MySQL如何添加自定义函数
  • 超融合数据库:解锁全场景数据价值的钥匙
  • Pap.er for Mac:高清壁纸应用打造你的专属视觉盛宴
  • AI:46-基于深度学习的垃圾邮件识别
  • 【骑行贝丘渔场】一场与海的邂逅,一段难忘的旅程
  • 消息中间件——RabbitMQ(一)Windows/Linux环境搭建(完整版)
  • Mysql 表读锁与表写锁
  • 目标检测概述
  • 10月31日星期二今日早报简报微语报早读
  • 【Linux】虚拟机项目部署与发布
  • 边缘计算技术的崭新篇章:赋能未来智能系统
  • Mac/Linux类虚拟机_CrossOver虚拟机CrossOver 23.6正式发布2024全新功能解析
  • RabbitMQ 运维 扩展
  • [量化投资-学习笔记003]Python+TDengine从零开始搭建量化分析平台-Grafana画K线图
  • 前端接口请求支持内容缓存和过期时间
  • 【计算机网络】数据链路层——以太网
  • 【Spring】Spring MVC请求响应
  • 程序设计与算法(二)算法基础(北京大学MOOC)
  • 【MedusaSTears】正则表达式搜索心得
  • 带你从0开始学习自动化框架Airtest
  • MySQL扩展语句和约束方式
  • 用起来顺手的在线表结构设计软件工具Itbuilder,与你共享
  • Android开发知识学习——HTTPS
  • STM32H750之FreeRTOS学习--------(一)初识RTOS
  • 关于pycharm中句号变成点的问题
  • FedGNN: Federated Graph Neural Network for Privacy-Preserving Recommendation
  • k8s---pod进阶