• uniapp实现瀑布流


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

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

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

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

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

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

    那么怎么使用uniapp实现呢?

    首先处理数据

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

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

    然后将数据渲染到页面上

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

    1. class="list">
    2. <view class="shop_list" v-for="(item,index) in leftList" :key="index" @click="product(item)">
    3. <image :src="https + item.img" mode="widthFix">image>
    4. <view class="shop_name">
    5. {{item.name}}
    6. view>
    7. <view class="shop_introdu">
    8. {{item.introdu}}
    9. view>
    10. view>
    11. <view class="lists">
    12. <view class="shop_list" v-for="(item,index) in rightList" :key="index" @click="product(item)">
    13. <image :src="https + item.img" mode="widthFix">image>
    14. <view class="shop_name">
    15. {{item.name}}
    16. view>
    17. <view class="shop_introdu">
    18. {{item.introdu}}
    19. view>
    20. view>
    21. view>

    最后就是调整样式

    1. .index_shop {
    2. width: 100%;
    3. height: auto;
    4. display: flex;
    5. justify-content: space-between;
    6. flex-wrap: wrap;
    7. }
    8. .list{
    9. width: 50%;
    10. display: flex;
    11. justify-content: center;
    12. flex-wrap: wrap;
    13. }
    14. .lists{
    15. width: 50%;
    16. display: flex;
    17. justify-content: center;
    18. flex-wrap: wrap;
    19. }
    20. .shop_list {
    21. width: 90%;
    22. height: auto;
    23. padding: 5px;
    24. margin: 0 auto;
    25. margin-top: 10px;
    26. background-color: #ffffff;
    27. border-radius: 5px;
    28. display: flex;
    29. flex-direction: column;
    30. align-items: flex-start;
    31. }
    32. .shop_list image {
    33. width: 100%;
    34. height: auto;
    35. border-radius: 5px;
    36. }

    然后看看效果;

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

  • 相关阅读:
    RepLKNet:不是大卷积不好,而是卷积不够大,31x31卷积了解一下 | CVPR 2022
    StartDT奇点云通过CMMI5全球软件领域最高级别成熟度认证
    所有人!把膝盖准备好,这份“保姆级”的RabbitMQ笔记,你不服不行
    React整理总结(三)
    被CTO推荐的SQL总结
    PIE-engine 教程 ——基于PIE-engine的水体频率变化长时序遥感监测自动计算平台
    1.1 Joyvan的矩阵
    linux系统向github传文件
    【CUDA学习笔记】什么是GPU计算
    企业文件加密软件!哪个好用?
  • 原文地址:https://blog.csdn.net/zzx262625/article/details/134093983