解决:微信小程序tab导航栏切换时,由于tab内容高度不一致而触发的触底事件onReachBottom

news/2024/7/20 2:48:09 标签: 小程序

场景:如图所示,不同的tab栏的内容高度不一致,如果由全部的导航栏切换到感觉划算的导航栏时,由于容器高度发生了变化,页面中的onReachBottom方法会触发。
在这里插入图片描述


但是实际开发中,我们通常只是希望页面下拉到底部时才会触发此事件,解决办法有很多,例如:

  • 可以在页面中设置onReachBottomDistance来规定下拉到多少距离时才会触发此事件

在这里,使用watch监听的方法来限制onReachBottom事件的触发;

  1. 定义一个变量isReachBottom默认值为true
data() {
	return {
		isReachBottom:true
	}
}

2.watch监听当前导航栏的变化,如果变化了,就把isReachBottom设置为false,这样就算高度变化触发了onReachBottom方法,使得代码不往下执行(看第三点)

watch:{
			currentTab() {//currentTab是当前的导航栏
				this.isReachBottom = false;
			}
		},
  1. 在onReachBottom顶部用设置方法是否可以往下执行
onReachBottom() {
	if(!this.isReachBottom) return;
	to do......
}

			

最后,在tab切换时,请求当前tab数据完成时需要把isReachBottom属性值还原为默认值true,这样在当前tab下拉触底时才会触发onReachBottom。


http://www.niftyadmin.cn/n/1770988.html

相关文章

深度解析模拟实现strcop函数

目录 一、strcop是什么 二、模拟实现的思路 三、assetr的用法 四、const的用法 一、strcop是什么 strcop全程string copy字符串拷贝,是c语言用来拷贝字符串的一个库函数,需要 包含string的头文件 格式strcop(char *strDestinati…

微信小程序之动态获取元素宽高、距离顶部底部的距离

一.首先,这个接口会返回一个对象实例。 var objwx.createSelectorQuery();下面的就是返回的对象实例 obj 的所有内容。 返回的 obj 有五个方法: obj.in(component):没用过这个方法,多用于组件的选择器。 obj.select(selector)&…

杨辉三角形(简单)

目录 一、杨辉三角形的规律 二、代码逻辑 方法一 方法二 一、杨辉三角型的规律 二、代码逻辑 方法一&#xff08;用上图的逻辑直接计算&#xff09; #include <stdio.h> int main() {int n 0;scanf("%d", &n);//输入要几行的三角型int data[30][…

《Git》版本管理工具的初识与入门

原文链接&#xff1a;https://blog.csdn.net/zy21131437/article/details/106781152

数据提升(题)

目录 一、题目 二、运行逻辑 一、题目&#xff08;以上代码输出的是什么&#xff1f;&#xff09; int main() {unsigned char a 200;unsigned char b 100;unsigned char c 0;c a b;printf(“%d %d”, ab,c);return 0; } 二、运行逻辑 1、printf&#xff08;“%d”&#…

import 和 require 实现路由懒加载的区别

import 和 require node编程中最重要的思想就是模块化&#xff0c;import和require都是被模块化所使用。 遵循规范 require 是 AMD规范引入方式import是es6的一个语法标准&#xff0c;如果要兼容浏览器的话必须转化成es5的语法 调用时间 import 是在编译时调用,所以必须放…

大小端字节序(题)

目录 一、题目 二、思路解析 一、题目&#xff08;在32位大端模式处理器上变量b等于&#xff08; &#xff09;&#xff09; unsigned int a 0x1234; unsigned char b*(unsigned char *)&a; 二、解题思路 1、0x1234是一个十六进制数 二进制的四个位等于一个十六进制位&…

记录:Vue常用的传值通信方法

众所周知&#xff0c;vue的传值方法很多&#xff0c;如下&#xff1a; 父传子&#xff1a;子组件设置props 父组件设置v-bind:/:子传父&#xff1a;子组件的$emit 父组件设置v-on/;Bus总线&#xff1a;新建一个vue实例&#xff0c; emit发送&#xff0c;on接收,这个方法要注…