deviceInfo = uni.getSystemInfoSync();
<list :pagingEnabled="true" :offset-accuracy="deviceInfo.windowHeight" @scroll="Scroll" ></list>
Scroll(e){
console.log(e.contentOffset);
- 发布:2020-07-17 13:09
- 更新:2021-01-26 10:40
- 阅读:1018
产品分类: 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值,应该始终保持的屏幕可用高度的倍数或者0
实际结果:
e.contentOffset中的y值出现-30等奇怪的值
e.contentOffset中的y值出现-30等奇怪的值
bug描述:
看下面的示例代码
正常情况我获取到的y值应该永远是屏幕可用区域的高度倍数或者0
但是在我快速滑动以后,y值会出现-30这种值
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