返回顶部
首页 > 资讯 > 前端开发 > JavaScript >小程序实现瀑布流动态加载列表
  • 560
分享到

小程序实现瀑布流动态加载列表

2024-04-02 19:04:59 560人浏览 八月长安
摘要

本文实例为大家分享了小程序实现瀑布流动态加载列表的具体代码,供大家参考,具体内容如下 最近业务需要做一个商城列表,就自己写了一个瀑布流来加载列表。 这个列表在很多地方都需要用到,就

本文实例为大家分享了小程序实现瀑布流动态加载列表的具体代码,供大家参考,具体内容如下

最近业务需要做一个商城列表,就自己写了一个瀑布流来加载列表。

这个列表在很多地方都需要用到,就给写成组件,方便使用。

1、goodsBox.js代码

想法很简单,就是判断两列的高度,将数据插入低的一列。

let leftHeight = 0,
  rightHeight = 0; //分别定义左右两边的高度
let query;
Component({
  
  properties: {
    GoodsList: {
      type: Array,
      value: []
    },
    loadingShow: {
      type: Boolean,
      value: false
    },
    noInfoShow: {
      type: Boolean,
      value: false
    }
  },

  
  data: {
    leftList: [],
    rightList: []
  },
  observers: {
  // 当goodsList发生变化时调用方法
    'goodsList': function (goodsList) {
      this.isLeft()
    }
  },
  
  methods: {
    async isLeft() {
      const {
        goodsList,
        leftList,
        rightList
      } = this.data;
      query = wx.createSelectorQuery().in(this);
      let list = goodsList.slice(leftList.length+rightList.length,goodsList.length)
      for (const item of list) {
        leftHeight <= rightHeight ? leftList.push(item) : rightList.push(item); //判断两边高度,来觉得添加到那边
        await this.getBoxHeight(leftList, rightList);
      }
      
    },
    getBoxHeight(leftList, rightList) { //获取左右两边高度
      return new Promise((resolve, reject) => {
        this.setData({
          leftList,
          rightList
        }, () => {
          query.select('#left').boundinGClientRect();
          query.select('#right').boundingClientRect();
          
          query.exec((res) => {
            leftHeight = res[0].height; //获取左边列表的高度
            rightHeight = res[1].height; //获取右边列表的高度
            resolve();
          });
        });
      })
    },
  }
})

这一块需要注意的是 wx.createSelectorQuery().in(this),将选择器的选取范围更改为自定义组件 component 内。微信文档.

2、goodsBox.wxml

这边主要就是把页面分成两列,一些CSS就不多写了

// wxml
<view class="box clearfix">
  <view id="left" class="left">
    <view class="shop_box" wx:for="{{leftList}}" wx:key="index" ></view>
  </view>
  <view id="right" class="right">
    <view class="shop_box" wx:for="{{rightList}}" wx:key="index" ></view>
  </view>
</view>
<view class="cu-load  loading" wx:if="{{loadingShow}}"></view>
<view class="cu-load  over" wx:if="{{noInfoShow}}"></view>

3、goodsBox.wxss

.left,.right{
  float: left;
}
.clearfix::after {
  content: ".";
  clear: both;
  display: block;
  overflow: hidden;
  font-size: 0;
  height: 0;
}
.clearfix {
  zoom: 1;
}

4、页面使用

现在JSON文件里面引用组件,然后使用组件

<goodsBox id="goodsBox" goodsList="{{goodsList}}" loadingShow="{{loadingShow}}" noInfoShow="{{noInfoShow}}"></goodsBox>

每次goodsList发生变化,组件就会调用瀑布流排列方法。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程网。

--结束END--

本文标题: 小程序实现瀑布流动态加载列表

本文链接: https://lsjlt.com/news/165382.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 小程序实现瀑布流动态加载列表
    本文实例为大家分享了小程序实现瀑布流动态加载列表的具体代码,供大家参考,具体内容如下 最近业务需要做一个商城列表,就自己写了一个瀑布流来加载列表。 这个列表在很多地方都需要用到,就...
    99+
    2024-04-02
  • 微信小程序实现瀑布流分页滚动加载
    本文实例为大家分享了微信小程序实现瀑布流分页滚动加载的具体代码,供大家参考,具体内容如下 两种分页方式 普通的分页效果会在页面底部提供点击下一页和上一页的按钮,在点击了按钮之后才会触...
    99+
    2024-04-02
  • js实现动态加载数据瀑布流
    本文实例为大家分享了js实现动态加载数据瀑布流的具体代码,供大家参考,具体内容如下 实现的功能 1.每次下拉到底部会自动加载下一页的数据2.图片逐渐显示 首先html <!DO...
    99+
    2024-04-02
  • js实现瀑布流触底动态加载数据
    本文实例为大家分享了js实现瀑布流触底动态加载数据的具体代码,供大家参考,具体内容如下 // onScrollEvent 滚动条事件 <div class="box" ...
    99+
    2024-04-02
  • 小程序中怎么实现瀑布流布局
    这篇文章将为大家详细讲解有关小程序中怎么实现瀑布流布局,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。widthFix:宽度不变,高度自动变化,保持原图宽高比不变。配合column-count...
    99+
    2023-06-19
  • Vue实现无限加载瀑布流
    本文实例为大家分享了Vue实现无限加载瀑布流的具体代码,供大家参考,具体内容如下 我做的这个瀑布流放在了一个嵌套页面里,就是类似管理后台的main content中,如果要改成全屏...
    99+
    2024-04-02
  • 微信小程序瀑布流如何实现
    本篇内容介绍了“微信小程序瀑布流如何实现”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!最简单的实现方案,不适用有分页的场景。这个方案简单的原...
    99+
    2023-06-26
  • js实现瀑布流布局(无限加载)
    本文实例为大家分享了js实现瀑布流布局的具体代码,供大家参考,具体内容如下 1.实现瀑布流布局思路 准备好数据之后 . 绑定滚动事件 . 判断页面是否到底(滚动的距离+可是区域的高度...
    99+
    2024-04-02
  • Vue怎么实现无限加载瀑布流
    这篇文章主要介绍“Vue怎么实现无限加载瀑布流”,在日常操作中,相信很多人在Vue怎么实现无限加载瀑布流问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Vue怎么实现无限加载瀑布流”的疑惑有所帮助!接下来,请跟...
    99+
    2023-06-25
  • 小程序列表懒加载如何实现
    本文小编为大家详细介绍“小程序列表懒加载如何实现”,内容详细,步骤清晰,细节处理妥当,希望这篇“小程序列表懒加载如何实现”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。小程序上的列表懒加载长列表我们经常接触到,长列...
    99+
    2023-06-29
  • 小程序列表懒加载的实现方式
    目录小程序上的列表懒加载分页加载用scroll事件监听用IntersectionObserver监听前端分页渲染用IntersectionObserver代替onReachBotto...
    99+
    2024-04-02
  • uniapp小程序实现瀑布流布局的思路与代码
    一、前言 现在写瀑布流算不算是炒冷饭啊? 我不管, 我就要写,谁也别想拦我。 瀑布流应该算是很常见的一种布局方法了,大致的思路也很好理解, 但是在小程序里面确有另外需要考虑的几个问...
    99+
    2024-04-02
  • uni-app开发壁纸图像小程序 瀑布流、懒加载展示
    标题:使用uni-app开发壁纸图像小程序:瀑布流与懒加载展示 引言: 在今天的移动应用市场中,壁纸图像小程序备受欢迎。为了提高用户体验,我们可以使用uni-app框架来开发这样的小程序,并实现瀑布流和懒加载展示功能。本文将介绍如何使用un...
    99+
    2023-08-31
    小程序 uni-app 前端
  • Android listview动态加载列表项实现代码
    最近了一个动态加载listview类表项的列子,分享出来大家学习学习,说说这个例子的实现过程,首先限定每次加载的列表项数据为10条数据,当拖动listview滚动到最后一条数据...
    99+
    2022-06-06
    列表 listview Android
  • HTML5怎样实现图片无限加载瀑布流效果
    这篇文章主要介绍了HTML5怎样实现图片无限加载瀑布流效果,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。代码如下:<!DOCTYPE&...
    99+
    2024-04-02
  • CSS3如何实现瀑布流布局与无限加载图片相册
    这篇文章主要介绍了CSS3如何实现瀑布流布局与无限加载图片相册,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一、pic1.html页面代码如...
    99+
    2024-04-02
  • HTML5怎么实现图片无限加载的瀑布流效果
    本篇内容主要讲解“HTML5怎么实现图片无限加载的瀑布流效果”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“HTML5怎么实现图片无限加载的瀑布流效果”吧!代码如...
    99+
    2024-04-02
  • 详解织梦模板DEDE首页列表页AJAX无限加载瀑布流修正版
    最近在学javascript,才慢慢开始读懂js代码。对HTML前台AJAX加载技术研究了一番,像博客站或者图片站运用AJAX异步无限加载,做成瀑布流,提高用户体验,这是AJAX异步加载的优点。 AJAX异步加载的弊端:...
    99+
    2022-06-12
    DEDE AJAX 无限加载 瀑布流
  • 微信小程序动态如何加载数据
    小编给大家分享一下微信小程序动态如何加载数据,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!微信小程序刚出来有很多的东西还在更新,...
    99+
    2024-04-02
  • JavaScript实现动态加载删除表格
    本文实例为大家分享了JavaScript实现动态加载删除表格的具体代码,供大家参考,具体内容如下 代码: <!DOCTYPE html> <html lang...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作