uni-app 下拉刷新、 上拉触底(列表信息)、 上滑加载(短视频) 一键搞定

一、下拉刷新

1. 首先找到pages.json中

给需要进行下拉刷新的页面设置可以下拉刷新

2. 然后在需要实现下拉刷新的script标签内添加

导入onPullDownRefresh

复制代码
import {onPullDownRefresh} from '@dcloudio/uni-app'

下拉刷新触发的事件

复制代码
onPullDownRefresh(()=> {
	console.log('正在刷新中......');

	setTimeout(function () {
		uni.stopPullDownRefresh();
	}, 1000);
})

二、上拉触底

1.在需要实现上拉触底的script标签内添加

复制代码
import {onPullDownRefresh} from '@dcloudio/uni-app'

onReachBottom(()=>{
	console.log('触底啦!')
})	

三、上滑加载

一般用于短视频,向上滑动触发时间,跳转到下一个视频

1. 在需要实现上滑加载的组件上加上参数touchstart、touchmove、touchend:

复制代码
<view class="layout"  
	  @touchstart="touchStart"
      @touchmove="touchMove"
      @touchend="touchEnd">

    //短视频
</view>

2. 在需要实现上滑加载的script标签内添加

复制代码
// 定义变量
const isLoading = ref(false); // 标记是否正在加载
const startY = ref(0); // 记录触摸开始的Y坐标
const distanceThreshold = 60; // 设置触发加载的距离阈值

// 模拟加载数据的函数
const loadData = () => {
  if (isLoading.value) return; // 如果正在加载,则不重复触发
  isLoading.value = true;
  console.log('加载更多数据...');
  // 模拟加载过程
  setTimeout(() => {
    isLoading.value = false;
    // 这里可以添加实际加载数据的逻辑,比如调用API获取数据
  }, 1000);
};



// 触摸开始事件
const touchStart = (event) => {
  startY.value = event.touches[0].clientY;
};

// 触摸移动事件
const touchMove = (event) => {
  const moveY = event.touches[0].clientY;
  const distance = startY.value - moveY; // 计算滑动的距离
  // 如果向上滑动并且超过阈值,则触发加载
  if (distance > distanceThreshold) {
    loadData();
  }
};

// 触摸结束事件
const touchEnd = () => {
  startY.value = 0; // 重置开始Y坐标
};
相关推荐
2501_915106324 小时前
当 Perfdog 开始收费之后,我重新整理了一替代方案
android·ios·小程序·https·uni-app·iphone·webview
2501_915918416 小时前
中小团队发布,跨平台 iOS 上架,证书、描述文件创建管理,测试分发一体化方案
android·ios·小程序·https·uni-app·iphone·webview
家里有只小肥猫7 小时前
uniApp打包ios报错
ios·uni-app
jingling5558 小时前
uniapp | 基于高德地图实现位置选择功能(安卓端)
android·前端·javascript·uni-app
某公司摸鱼前端8 小时前
前端一键部署网站至服务器FTP
前端·javascript·uni-app
爱怪笑的小杰杰8 小时前
UniApp 桌面应用实现 Android 开机自启动(无原生插件版)
android·java·uni-app
m0_647057968 小时前
uniapp使用rich-text流式 Markdown 换行问题与解决方案
前端·javascript·uni-app
木子啊9 小时前
Uni-app导航栏适配终极避坑指南
uni-app·自定义导航栏·导航栏
2501_915106329 小时前
iOS 如何绕过 ATS 发送请求,iOS调试
android·ios·小程序·https·uni-app·iphone·webview
行走的陀螺仪20 小时前
uni-app + Vue3编辑页/新增页面给列表页传参
前端·vue.js·uni-app