您现在的位置是:网站首页>软件开发>开发终端>uni-appuni-app

scroll-view上拉加载失效问题

风口下的猪2019-11-13uni-app

简介

 错题症状

页面中需要做一个上拉加载,如下

<scroll-view scroll-y="true" class="list" @scrolltolower="loadMore">
<listlr :listrldata="rllist.list" @guanzhu="guanzhu(arguments)"  @dianzan="dianzan(arguments)"></listlr>
<load-more :loadtext="rllist.loadtext"></load-more>
</scroll-view>
loadMore(){
console.log('sda');
}

然而console根本没有反应,即scroll-view下滑到底,根本没有触发@scrolltolower="loadMore"

           




 错题分析

这种情况出现,极有可能是scroll-view-y的高度超出了实际触发scrolltolower的高度。

这里要注意的是,默认情况下触发scrolltolower事件的高度是从页面导航栏后开始算起,到底部导航栏。即当触发scrolltolower的高度达到scroll-view-y高度时就触发。

原理如图:


也就是说,无论怎么滑动,触发scrolltolower的高度都达不到scroll-view-y高度,就不能触发事件了。



 错题解决方案

给scroll-view-y一个确定的高度,这个高度要和触发scrolltolower的高度一样。

此例中,即scroll-view的高度要剔除掉导航栏的高度。

<scroll-view scroll-y="true" class="list" @scrolltolower="loadMore" :style="{height:swiperboxHeight+'px'}">
data() {
return {
swiperboxHeight:0,
        }
}
onLoad() {
uni.getSystemInfo({
success:(res)=>{
let height=res.windowHeight-uni.upx2px(100)
this.swiperboxHeight=height
}
})
}

即通过设备读取接口获得页面可用高度,再减去顶部导航栏100upx。



很赞哦! (0)

  • 软件开发
  • 素质要求
  • 计算机基础
  • 架构
  • 安全
  • 性能
  • 运维
  • 尾页
  • 数据库
  • 开发终端
  • 语言基础
  • 项目管理
  • 产品设计
  • 系统
  • 工作规范
  • 计算机网络
  • 前端技术栈
  • 数据结构
  • 计算机组成原理
  • 后端技术栈
  • 性能优化
  • 安全设计
  • 常见模块
  • 计算机操作系统
  • 服务器
  • python
  • MySQL
  • thinkphp
  • PHP
  • Java
  • JavaScript
  • Windows
  • Linux
  • 特效
  • indexedDB
  • vue
  • 淘宝联盟
  • Ionic
  • Angular
  • 微信小程序
  • 支付宝小程序
  • uni-app
  • css/sass/less
  • 支付
  • socket
  • 爬虫
  • web性能优化
  • 消息推送
  • CVM
  • sqlite
  • Redis
  • 前端基础
  • 基础
  • element
  • Nginx
  • yii2
  • /ponder/index.php/index/catelist/catelist/cateid/10.html

    相关阅读 (同一栏目)

    << /

    标签云

    站点信息

    • 文章统计:528篇
    • 移动端访问:扫码进入SQ3R