nopilot
nopilot
  • 发布:2020-07-17 13:09
  • 更新:2021-01-26 10:40
  • 阅读:923

【报Bug】nvue页面List组件的scroll事件在竖向快速滑动后的contentOffset中的y值不准确

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: win10

HBuilderX类型: 正式

HBuilderX版本号: 2.7.9

手机系统: iOS

手机系统版本号: iOS 12.3

手机厂商: 苹果

手机机型: Iphone7

页面类型: nvue

打包方式: 离线

项目创建方式: HBuilderX

示例代码:
deviceInfo = uni.getSystemInfoSync();  
<list :pagingEnabled="true" :offset-accuracy="deviceInfo.windowHeight" @scroll="Scroll" ></list>  

Scroll(e){  
    console.log(e.contentOffset);               

操作步骤:
deviceInfo = uni.getSystemInfoSync();  
<list :pagingEnabled="true" :offset-accuracy="deviceInfo.windowHeight" @scroll="Scroll" ></list>  

Scroll(e){  
    console.log(e.contentOffset);               

预期结果:

e.contentOffset中的y值,应该始终保持的屏幕可用高度的倍数或者0

实际结果:

e.contentOffset中的y值出现-30等奇怪的值

bug描述:

看下面的示例代码
正常情况我获取到的y值应该永远是屏幕可用区域的高度倍数或者0
但是在我快速滑动以后,y值会出现-30这种值

2020-07-17 13:09 负责人:无 分享
已邀请:
996上班族

996上班族 - 996上班族

滑动的UI现象有问题吗?

  • nopilot (作者)

    UI没有问题,只是回调的值有问题

    2020-07-17 13:59

  • 996上班族

    回复 nopilot: scroll猜测应该是实时监听的,你滑动了一小步(30),pagingEnabled是true,系统就帮你一个页面换过去。用ios的解释是,这的scroll类似 - (void)scrollViewDidScroll:(UIScrollView *)scrollView这个方法,scrollView滚动时,就调用该方法。任何offset值改变都调用该方法。即滚动过程中,调用多次。

    2020-07-17 14:06

  • 996上班族

    回复 nopilot: 看了文档 复制给你:@scroll EventHandle 滚动时触发,event.detail = {scrollLeft, scrollTop, scrollHeight, scrollWidth, deltaX, deltaY} 你手指滑的时候也会触发

    2020-07-17 14:09

  • nopilot (作者)

    回复 996上班族: cell的appear事件也有经常不触发的情况,这是什么原因呢

    2020-07-17 15:18

  • 996上班族

    回复 nopilot: 你说的具体一点

    2020-07-17 15:39

  • nopilot (作者)

    回复 996上班族: 就是还是上面的代码,我每次滑动都是以一个屏高为单位,顺序往下滑动的时候,cell的appear事件有时候会少触发一个

    2020-07-17 17:19

  • a***@54315.com

    这个问题还是存在,hbuilder3.0.7。 ios12.1.4版本,手机iPhone8。 list滑动整屏幕, 开始滑动正常,但是快速滑动几次就出现,滑动不是正屏的问题。

    2021-01-26 10:53

a***@54315.com

a***@54315.com

问题解决了吗

  • 996上班族

    建议不设置offset-accuracy,默认采样精度为10px,楼主的精度为屏幕高度太低了。不清楚你的问题是不是一样。

    2021-01-26 13:20

该问题目前已经被锁定, 无法添加新回复