位置: IT常识 - 正文

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

发布时间:2024-01-15
【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怎么安装)

  • 微信Windows3.3.5正式版更新了什么(微信 windows 3.3.0)

    微信Windows3.3.5正式版更新了什么(微信 windows 3.3.0)

  • iqoo8pro是双卡双待吗(iqoo8支持双卡双待吗)

    iqoo8pro是双卡双待吗(iqoo8支持双卡双待吗)

  • 联想笔记本怎么关闭触摸板(联想笔记本怎么强制关机重启)

    联想笔记本怎么关闭触摸板(联想笔记本怎么强制关机重启)

  • 健康码可以解绑家人吗(健康码可以解绑几次手机号)

    健康码可以解绑家人吗(健康码可以解绑几次手机号)

  • 微信视频过长怎么发送给朋友(微信视频过长怎么发送)

    微信视频过长怎么发送给朋友(微信视频过长怎么发送)

  • 电脑开机无法输入密码怎么办(电脑开机无法输入pin)

    电脑开机无法输入密码怎么办(电脑开机无法输入pin)

  • 拼多多快捷回复怎么设置(拼多多快捷回复收费吗)

    拼多多快捷回复怎么设置(拼多多快捷回复收费吗)

  • 路由器能当交换机使用吗(路由器能当交换机使用不)

    路由器能当交换机使用吗(路由器能当交换机使用不)

  • 淘宝直播间为啥没人进来(淘宝直播间为啥抢不了红包了呢怎么回事)

    淘宝直播间为啥没人进来(淘宝直播间为啥抢不了红包了呢怎么回事)

  • 微信聊天背景能保存吗(微信聊天背景能单独设置吗)

    微信聊天背景能保存吗(微信聊天背景能单独设置吗)

  • 微信消息收到顺序错乱(微信消息收到顺序怎么改)

    微信消息收到顺序错乱(微信消息收到顺序怎么改)

  • 优酷三倍速怎么设置的(优酷三倍速变二倍速)

    优酷三倍速怎么设置的(优酷三倍速变二倍速)

  • 知乎可以看到别人的浏览记录吗(知乎可以看到别人在线吗)

    知乎可以看到别人的浏览记录吗(知乎可以看到别人在线吗)

  • 笔记本最小尺寸是多少(笔记本最小尺寸电阻)

    笔记本最小尺寸是多少(笔记本最小尺寸电阻)

  • r330打印机双闪怎么办(l130打印机双闪)

    r330打印机双闪怎么办(l130打印机双闪)

  • 苹果11能双卡双待吗(苹果11能双卡双带吗)

    苹果11能双卡双待吗(苹果11能双卡双带吗)

  • wps怎么快速查找名字(wps怎么快速查找关键字)

    wps怎么快速查找名字(wps怎么快速查找关键字)

  • 添加尾注怎么设置(添加尾注怎么设置编号格式)

    添加尾注怎么设置(添加尾注怎么设置编号格式)

  • 快手的评论为什么有的不显示出来(快手的评论为什么别人看不到)

    快手的评论为什么有的不显示出来(快手的评论为什么别人看不到)

  • x23和x27对比(x23 x27对比)

    x23和x27对比(x23 x27对比)

  • 怎么关闭好友热播(怎么关闭好友热搜)

    怎么关闭好友热播(怎么关闭好友热搜)

  • 华为p30pro返回键在哪(华为p30pro返回键手势)

    华为p30pro返回键在哪(华为p30pro返回键手势)

  • 苹果xr怎么显示网速(苹果XR怎么显示电量数字)

    苹果xr怎么显示网速(苹果XR怎么显示电量数字)

  • 爱奇艺怎么设置王卡免流量(爱奇艺怎么设置弹幕)

    爱奇艺怎么设置王卡免流量(爱奇艺怎么设置弹幕)

  • React的高阶组件详解(react的高阶组件理解)

    React的高阶组件详解(react的高阶组件理解)

  • web前端面试高频考点——Vue原理(理解MVVM模型、深度/监听data变化、监听数组变化、深入了解虚拟DOM)(web前端面试常见问题)

    web前端面试高频考点——Vue原理(理解MVVM模型、深度/监听data变化、监听数组变化、深入了解虚拟DOM)(web前端面试常见问题)

  • 账面价值大于计税基础
  • 车辆购置税计入成本吗
  • 税收职能和作用
  • 员工出差车费如何报销
  • 租赁收入缴纳个人所得税
  • 背书承兑分录
  • 职工受到工伤后应该怎么办
  • 存根联给了客户怎么办
  • 负债表内容
  • 多开的增值税发票交多少税
  • 房产税按租金收入
  • 工会发放节日慰问
  • 免费拿样品
  • 农牧业没有发票怎么办
  • 出口业务具体流程图
  • 取得的增值税发票哪些项目必须开具事项
  • 污水处理费怎么收取的
  • 公司清算补偿工资标准
  • 返还经费
  • 税控盘没清盘怎么处罚
  • win7绝地求生帧数不稳定
  • PHP:mb_regex_set_options()的用法_mbstring函数
  • php用户登录用的什么技术
  • 所得税汇算清缴退税会计分录怎么做
  • linux输出结果
  • linux系统之间拷贝文件命令
  • 艾叶泡脚的方法和注意事项
  • 福克兰群岛属于哪国
  • 增值税专用发票的税率是多少啊
  • 生产企业出口退税申报流程操作
  • 小企业会计准则财务报表至少包括
  • php下载功能
  • 如果收到房租的说说
  • 浅谈socket同步和异步、阻塞和非阻塞、I/O模型
  • php上传图片并显示
  • php公众号开发框架
  • torch.nn.functional.interpolate()函数详解
  • uniapp微信小程序兼容
  • 出口退税哪些税不退
  • 企业会计准则季报利润表填写
  • 支付中间人佣金违法吗
  • 帝国cms到底好不好
  • 银行承兑汇票是商业汇票吗
  • 帐务处理程序
  • 待抵扣进项税如何在营运资金
  • 税收返还要交税费吗
  • 债权方的视同购进怎么会计处理?
  • 资金结存余额在借方还是贷方
  • 应付票据贴现借款
  • 中介收取中介费的法律依据
  • 缴纳工会经费如何记账
  • 企业的管理费用包括
  • 游戏里区和服的区分
  • mssql数据库的账号密码
  • win8正版系统
  • Windows Server 2008的NPS策略应用
  • ubuntu20.04.2安装
  • win7 系统设置
  • spyware.exe - spyware是什么进程
  • windows7中个性化设置
  • 怎么给电脑装win8系统
  • shell数值比较
  • win8windows设置在哪里
  • win8账户锁定无法登录
  • bat批量命名
  • 批处理 修改文件名
  • 没有实例化是什么意思
  • [置顶]马粥街残酷史
  • 深入探讨近义词
  • jquery分页插件的使用
  • JAVAscript字符串类型单引号和双引号意一样吗
  • apk反编译去广告教程
  • 发票上的税务号
  • 三证合一后还有税务登记证吗?
  • 目的地查验和口岸查验费用一样吗
  • 怎么屏蔽微信群消息,但是不退出此群
  • 如何代扣个人所得税
  • 上海市税务局的电话
  • 省银保监局长是什么级别
  • 建筑行业的公司近期出现的问题
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号