位置: IT常识 - 正文

【uniapp】上拉触底加载更多的两种方式,组件里面和页面里面 scroll-view组件和onReachBottom触底方法,以及部分安卓机型scroll-view很难触发问题,且可以固定表头(uniapp scroll-view 上下滑动)

编辑:rootadmin
【uniapp】上拉触底加载更多的两种方式,组件里面和页面里面 scroll-view组件和onReachBottom触底方法,以及部分安卓机型scroll-view很难触发问题,且可以固定表头

推荐整理分享【uniapp】上拉触底加载更多的两种方式,组件里面和页面里面 scroll-view组件和onReachBottom触底方法,以及部分安卓机型scroll-view很难触发问题,且可以固定表头(uniapp scroll-view 上下滑动),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:uniapp的下拉框,uniapp下拉刷新和上拉加载,uniapp scroll-view 上下滑动,uniapp上下页面滑动,uniapp下拉,uniapp上拉加载带动画,uniapp上拉加载带动画,uniapp上拉加载带动画,内容如对您有帮助,希望把文章链接给更多的朋友!

一般的话scroll-view在组件里面使用,而页面里面则使用onReachBottom()这个方法居多

1,onReachBottom 上拉触底后加载更多(未固定表头)

页面结构:

<view class="box"><table border="0"><thead><th>名称</th><th style="width: 50px;">状态</th><th>上传时间</th><th style="width: 60px;">重量(kg)</th><th style="width: 50px;">类型</th></thead><tr v-for="(item,index) in utrData" :key="index" class="trs"><td>{{item.name}}</td><td>{{item.flag}}</td><td>{{item.createDt}}</td><td>{{item.weight}}</td><td>{{item.typeCode}}</td></tr></table><view class="zwsj">{{ moreContent }}</view></view>【uniapp】上拉触底加载更多的两种方式,组件里面和页面里面 scroll-view组件和onReachBottom触底方法,以及部分安卓机型scroll-view很难触发问题,且可以固定表头(uniapp scroll-view 上下滑动)

注意: 这个box的height要比屏幕的高度高5px或者10px,要不然它不会出现滚动条,没有滚动条就不会触发onReachBottom 这个触底方法了 当然,如果你确保你的数据首次查询的高度比屏幕的高度还高,那它自然就出现滚动条了,这个box就直接等于屏幕的高度就行 如果要考虑数据少于10条,且没有撑满屏幕,那这个box还是设置比屏幕高度高一点比较好.

export default {data() {return {utrData: [],//列表数组pageNum: 1, // 页数total: 0,//每页总数flag: true, // 上拉加载开关 防止一次触底查询多次问题,防止数据查完后触底还调接口问题moreContent: '上拉加载更多数据...',}},methods: {//上拉加载更多getMoreList(){this.flag = trueuni.request({...success:res => {if(res.data.status == 200){this.flag = falselet result = res.data.data || []this.utrData = this.utrData.concat(result)if(result.length == 0 && this.pageNum == 1){// 一开始就没有数据this.moreContent = '暂无数据'}else{this.total = result ? result.length : 0if(this.total < 10){// 只有一页数据,不足10条this.moreContent = '数据已加载完,共' + this.utrData.length + '条'this.flag = true}// 有很多页this.pageNum += 1}}else{this.moreContent = '暂无数据'uni.showToast({title:res.data.message,icon:'none'});}} });},},//监听页面触底函数onReachBottom(){if(!this.flag){this.getMoreList()}},}

如果没效果,先测试onReachBottom有没有触发,一般触发了基本上就没什么问题了

2,scroll-view组件上拉加载更多(固定表头)

ui组件: uview2.0 如果你不想固定表头,就不用 -37 就可以了 wx.getSystemInfoSync().windowHeight 获取当前屏幕的高度

<view class="box" :style="{height: boxHeight + 48 + 37 + 'px'}"><view class="toptitle"><u-icon name="list-dot" color="#00c9d5" size="28"></u-icon><text>具体信息</text></view><view class="content"><view class="thead"><text>code</text><text>时间</text><text>重量(kg)</text><text>类型</text><text>状态</text></view><view class="tbody" :style="{height: boxHeight + 'px'}" id="test"><scroll-viewscroll-y="true"lower-threshold="10":style="{height: boxHeight + 'px'}"@scrolltolower="scrolltolower"><view class="tableData" :style="{height: boxHeight + 10 + 'px'}"><view v-for="(item, index) in tableArr" :key="index"><text>{{ item.code }}</text><text>{{ item.create_time }}</text><text>{{ item.weight }}</text><text>{{ item.type }}</text><text>{{ item.location}}</text></view><view style="color: #aaa;"><text>{{loadingContent}}</text></view></view></scroll-view></view></view></view>export default {data() {return {tableArr: [],boxHeight: wx.getSystemInfoSync().windowHeight - 48 - 37,loadingContent: '上拉加载更多数据...',total: 0, // 每页总数pageNum: 1,// 页数flag: true, // 控制上拉翻页testHeight: 0}},methods: {// 页面滚动触发scrolltolower(e) {if(!this.flag){ this.getTable() }},// 查询表格getTable(){let params = {p: this.pageNum}this.$get('xxx', params).then(res =>{this.flag = truelet result = res.lsit || []this.tableArr = this.tableArr.concat(result)if(result.length == 0 && this.pageNum == 1){// 一开始就没数据this.loadingContent = '暂无数据'}else{this.total = result ? result.length : 0if(this.total < 10){this.moreContent = '数据已加载完,共' + this.utrData.length + '条'this.flag = true}this.flag = falsethis.pageNum += 1}})},},}3,scroll-view 部分安卓机型很难触发问题

ios用第二种方法没有问题,部分安卓用的话很难触发上拉加载更多,为什么部分安卓很难触发就不说了,自行百度

解决: @scrolltolower 方法替换为 @scroll @scrolltolower 方法是 scroll-view触底了就会触发,是触scroll-view组件的底部,不是触屏幕的底部 @scroll 方法是只要 scroll-view组件滑动了,就会触发这个方法

methods: {// 页面滚动触发scrolltolower(e) {// 距离底部<100 并且是往上滑的动作if(e.detail.scrollHeight - e.detail.scrollTop - this.testHeight <= 100 && this.flag && e.detail.deltaY < 0){this.flag = falsethis.getTable()}},// 查询表格getTable(){let params = {p: this.pageNum}this.$get('xxx', params).then(res =>{this.flag = truelet result = res.lsit || []if(result.length == 0 && this.pageNum == 1){// 一开始就没数据this.loadingContent = '暂无数据'this.flag = false}else{this.pageNum += 1this.total = result ? result.length : 0if(this.total < 10){this.moreContent = '数据已加载完,共' + this.utrData.length + '条'this.flag = false}this.tableArr = this.tableArr.concat(result)if(this.testHeight==0){let view = uni.createSelectorQuery().in(this).select("#test")view.fields({size: true,scrollOffset: true}, data => {this.testHeight=data.height}).exec();}}})},},

ok,没了,记录一下,哪里写的不对还请指出,谢谢,下期再见! ! !

本文链接地址:https://www.jiuchutong.com/zhishi/296115.html 转载请保留说明!

上一篇:冰川洞穴里流动的河流,冰岛瓦特纳冰原 (© Marco Bottigelli/Getty Images)(冰川洞洞打法)

下一篇:BurpSuite安装和基础使用教程(已破解)(burp怎么安装)

  • 学生钉钉上课怎么签到(学生钉钉上课怎么开摄像头苹果)

    学生钉钉上课怎么签到(学生钉钉上课怎么开摄像头苹果)

  • 小米10自带膜是不是钢化膜(小米10自带膜是钢化膜吗)

    小米10自带膜是不是钢化膜(小米10自带膜是钢化膜吗)

  • ipad购买日期未验证是什么意思(ipad购买日期未验证手机里却显示了保修时间)

    ipad购买日期未验证是什么意思(ipad购买日期未验证手机里却显示了保修时间)

  • 手机相机连拍怎么设置(手机相机连拍怎么打开)

    手机相机连拍怎么设置(手机相机连拍怎么打开)

  • 超频开不了机怎么办(超频开不开机黑屏怎么办)

    超频开不了机怎么办(超频开不开机黑屏怎么办)

  • 为什么微信聊天记录突然没有(为什么微信聊天有的人显示正在输入有的不显示)

    为什么微信聊天记录突然没有(为什么微信聊天有的人显示正在输入有的不显示)

  • 淘宝会员等级哪里查(淘宝的会员等级)

    淘宝会员等级哪里查(淘宝的会员等级)

  • 惠普打印机打印一半就不打印了(惠普打印机打印错误是怎么回事)

    惠普打印机打印一半就不打印了(惠普打印机打印错误是怎么回事)

  • 强行关机后电脑打不开怎么办(强行关机后电脑运行很卡)

    强行关机后电脑打不开怎么办(强行关机后电脑运行很卡)

  • 苹果手机怎么清理通讯录所有电话(苹果手机怎么清除app数据缓存)

    苹果手机怎么清理通讯录所有电话(苹果手机怎么清除app数据缓存)

  • 元屏和组装屏的区别(元屏和组屏区别)

    元屏和组装屏的区别(元屏和组屏区别)

  • p40屏幕尺寸(华为手机p40屏幕尺寸)

    p40屏幕尺寸(华为手机p40屏幕尺寸)

  • 小米10支持反向充电吗(小米支持反向无线充电的手机)

    小米10支持反向充电吗(小米支持反向无线充电的手机)

  • 两台手机怎么互传文件(两台手机怎么互相投屏)

    两台手机怎么互传文件(两台手机怎么互相投屏)

  • 红米note8pro怎么连接电脑(红米note8pro怎么开小窗)

    红米note8pro怎么连接电脑(红米note8pro怎么开小窗)

  • 荣耀10青春版能不能开空调(荣耀10青春版能卖多少钱)

    荣耀10青春版能不能开空调(荣耀10青春版能卖多少钱)

  • 苹果xsmax支持nfc功能吗(苹果xsmax支持多少w充电)

    苹果xsmax支持nfc功能吗(苹果xsmax支持多少w充电)

  • i5i7有什么区别(酷睿i5i7有什么区别)

    i5i7有什么区别(酷睿i5i7有什么区别)

  • wps表格划线笔在哪里(wps中划线的笔在哪里)

    wps表格划线笔在哪里(wps中划线的笔在哪里)

  • 华为荣耀如何显示触屏操作(华为荣耀如何显示流量)

    华为荣耀如何显示触屏操作(华为荣耀如何显示流量)

  • Win11更新包大小暴减 40%,微软官方解析技术原理(windows11更新多大)

    Win11更新包大小暴减 40%,微软官方解析技术原理(windows11更新多大)

  • 使用nvm安装node(使用nvm安装nodejs后无法执行node命令)

    使用nvm安装node(使用nvm安装nodejs后无法执行node命令)

  • 应交代扣利息税
  • 公司收据收款人怎么写
  • 小微企业的企业所得税税收优惠政策
  • 当月有进项无销项月末怎么处理
  • 本年支付 历年支付
  • 房企与个人订立购房合同是否贴花?
  • 哪些税种计税价格是含增值税
  • 金税设备维护费账务处理
  • 收到客户承兑怎么做账
  • 固定资产发票未到怎么提折旧
  • 土地价值是否计入GDP
  • 完全发生在境外的服务增值税
  • 含税金是什么意思
  • 车辆购置税是否计入固定资产
  • 个体户进货需要发票吗?
  • 税控盘怎么进行升级
  • 坏账损失的账务处理办法
  • 银行中间业务能开具增值税专票吗
  • 受让股东对出让股东抽逃出资
  • linux 如何查看网卡信息
  • Win10 Version 1909累积更新补丁KB4601315:修复诸多 BUG
  • 本年利润有余额可以结账吗
  • win10补丁kb5005543
  • debian配置
  • php编程技术
  • php执行sh脚本
  • php中面向对象
  • 预收账款属于什么科目
  • 主播工资不发
  • 参展费会计分录
  • 未取得增值税发票开具二手车发票
  • 维修费开票属于信息技术服务吗
  • mongodb $nin
  • 递延所得税资产和递延所得税负债
  • 转回存货跌价准备的会计分录
  • 增值税发票过了两个月怎么作废
  • 权益工具是金融资产还是非金融资产
  • 固定资产的货币时间价值
  • 以前年度多缴的税
  • 分公司民事责任由谁承担
  • 所得税汇算清缴补税的会计处理
  • 通行费发票增值税申报怎么填写
  • 如果租房没有合同怎么办
  • 公司给买员工保险
  • 在外地设办事处需要办什么手续
  • 固定资产小汽车折旧怎么计提
  • 融资手续费计入长期待摊
  • 航天金税电子发票怎么读入
  • 怎么判断政府
  • 工业企业预提费用怎么算
  • sql怎么分组查询
  • windows xp简单操作教程
  • 苹果os X El capitan无法更新了吗
  • windows自动执行
  • linux 删除重复文件
  • centos必学的60个命令
  • 电脑进程wsappx是什么
  • linux系统中安装web服务
  • explorer.exe进程文件
  • win7旗舰版虚拟光驱下载
  • 在linux系统中创建用户账户
  • linux 使用
  • 二分法查找 js
  • 安卓十游戏怎么玩
  • linux awk命令使用实例
  • Unity3D游戏开发(第2版)pdf
  • jquery使用jsonp
  • 粒子form
  • xp启动项 命令
  • linux创建用户的命令是什么
  • shell 解析yml
  • 请问在javascript程序中
  • python拷贝列表
  • 如何办理清税证书
  • 国税局登录密码修改
  • 收到税务局发的多条宣传短信
  • 国税报表填报
  • 杭州地税局办事大厅
  • 福州税务实名认证
  • 千兆交换机涨价
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设