微信小程序瀑布流组件

ops/2024/11/17 15:49:34/

实现思路

  • 布局采用左右风格的方式,图片采用宽度固定自适应高度
  • 接收到显示的数组循环获取左右的高度对比下一个插入左或右
  • 提供左右插槽可自定义布局,传出当前循环的值与下标
  • 提供触底事件与返回顶部事件
  • 在滚动过程中隐藏不需要显示的数据以减少微信小程序dom的消耗

示例

  • backTop() 返回顶部
  • Init(arr) 接收下一个显示的数组
<template><view style="display: flex;flex-direction: column;width: 100%;height: 100wh;"><view class="ddddd"><ZzzVue @scrolltolower="jhjj2" ref="leftright"><template v-slot:left="{data,dataIndex}"><image :src="data"style="width: 100%;display: block;margin: 0;padding: 10rpx;box-sizing: border-box;"mode="widthFix"></image></template><template v-slot:right="{data,dataIndex}"><image :src="data"style="width: 100%;display: block;margin: 0;padding: 10rpx;box-sizing: border-box;"mode="widthFix"></image></template></ZzzVue></view><view @click="jhjj2()" style=" line-height: 90rpx;background: #ccc;">下一页</view><view @click="jhjj333()" style=" line-height: 90rpx;background: #ccc;">返回顶部</view></view>
</template><script>import a1 from '../../static/1.jpg'import a2 from '../../static/2.jpg'import ZzzVue from '../Component/Compent.vue'export default {components: {ZzzVue},data() {return {arrList: [a1,a2],tempList: []}},onLoad() {var d = [...this.arrList];for (let i = 0; i < 5; i++) {this.arrList = [...this.arrList, ...d]}this.tempList = [...this.arrList]this.$nextTick(() => {this.$refs.leftright.Init(this.arrList)})},methods: {jhjj333() {this.$nextTick(() => {this.$refs.leftright.backTop()})},jhjj2() {this.$nextTick(() => {this.$refs.leftright.Init(this.tempList)})},}}
</script><style>.ddddd {width: 100%;height: 80vh;}
</style>

源代码

微信小程序瀑布流组件


http://www.ppmy.cn/ops/134463.html

相关文章

蓝队知识浅谈(上)

声明&#xff1a;学习视频来自b站up主 泷羽sec&#xff0c;如涉及侵权马上删除文章 感谢泷羽sec 团队的教学 视频地址&#xff1a;蓝队基础之网络七层杀伤链_哔哩哔哩_bilibili 本文主要分享一些蓝队相关的知识。 首先我们先来了解一下什么是蓝队&#xff1f; 蓝队是信息安全领…

动态规划子数组系列(二) 环形子数组的最大和

题目&#xff1a; 解析&#xff1a; 代码&#xff1a; public int maxSubarraySumCircular(int[] nums) {int sum 0;int n nums.length;int[] f new int[n1];int[] g new int[n1];int ret 0, fmax -0x3f3f3f3f, gmin Integer.MAX_VALUE;for(int i 1; i < n; i)…

基于STM32的智能温室控制系统设计

引言 随着农业智能化的发展&#xff0c;传统温室管理模式因效率低下逐渐被淘汰&#xff0c;智能温室控制系统应运而生。智能温室系统通过实时监测温室内的温度、湿度和光照强度&#xff0c;并自动控制通风、灌溉及补光设备&#xff0c;为作物生长提供最优的环境条件。本项目基…

通过声纹或者声波来切分一段音频

通过声纹识别或基于声波特征的模型&#xff0c;确实可以帮助切分一段音频并区分出不同讲话者的语音片段。这种技术被称为 基于声纹的语音分割 或 基于说话人识别的音频分割。其核心原理是利用每个说话者的 声纹特征&#xff08;即每个人独特的语音特征&#xff09;来识别和切分…

在连锁零售行业中远程控制软件的应用

在连锁零售行业&#xff0c;远程控制软件正逐渐成为提高效率和降低成本的重要工具。作为零售经理&#xff0c;您可能已经注意到这种技术带来的变化。试想一下&#xff0c;无论您身在何处&#xff0c;都可以实时监控商店的运营情况&#xff0c;甚至在远离的地方解决顾客的问题。…

FreeRTOS 低功耗 Tickless 模式深度解析

目录 一、引言 二、Tickless 模式的工作原理 1.传统的定时器中断&#xff08;Tick&#xff09;模式 2.Tickless 模式的引入 3.具体实现机制 三、Tickless 模式的优势 1.降低功耗 2.提高响应速度 3.灵活性 四、配置和使用 Tickless 模式 1.软件配置 2.任务编程注意事…

MySQL技巧之跨服务器数据查询:基础篇-A数据库与B数据库查询合并

MySQL技巧之跨服务器数据查询&#xff1a;基础篇-A数据库与B数据库查询合并 上一篇已经描述&#xff1a;借用微软的SQL Server ODBC 即可实现MySQL跨服务器间的数据查询。 而且还介绍了如何获得一个在MS SQL Server 可以连接指定实例的MySQL数据库的链接名: MY_ODBC_MYSQL 以…

前端面试场景题目(一)

如何在浏览器中执行100万个任务&#xff0c;并保证页面不卡顿? 使用Web Workers&#xff1a;将任务分配给多个Web Workers&#xff0c;这些Workers在后台线程中运行&#xff0c;不会干扰页面的主线程&#xff0c;从而避免页面卡顿。分批处理任务&#xff1a;将100万个任务分成…