uni-app createIntersectionObserver监听数据不准确

hs1rzwqc  于 2021-11-27  发布在  Java
关注(0)|答案(0)|浏览(1226)

问题描述

使用uni-app来检测组件信息时,我看了createIntersectionObserver的接口和示例。我发现监听到的数据不准确。可以在Uniapp中直接跑示例代码,或者按照下列步骤复现问题。

复现步骤

  1. HBuilderX新建项目,选择【uni-app】- 【选择模板】- 【Hello uni-app】
  2. 运行项目,点击【接口】-【界面】-【节点布局交互状态】,小球滚动到顶部至消失状态,然后慢慢向下滚动,即使小球可见了,依然显示的是小球消失状态

预期结果

不论滚动速度快慢,都能正常检测到小球和scrollView的交互状态。

实际结果

查看BUG演示gif图

相交监听结果: {"intersectionRatio":0,"intersectionRect":{"bottom":421,"height":0,"left":395,"right":684,"top":421,"width":289},"boundingClientRect":{"bottom":421,"height":288,"left":395.5,"right":683.5,"top":133,"width":288},"relativeRect":{"bottom":996,"height":576,"left":43,"right":1036,"top":420,"width":993},"time":1592536478828,"dataset":{},"id":""}  at pages/API/intersection-observer/intersection-observer.vue:29

从打印的日志信息看,明显小球在屏幕中可见,但是intersectionRatio的值是0,intersectionRectheight值还是0。我猜测错误的原因就在这里。

系统信息:

  • 发行平台: [H5平台、5+ App]
  • 操作系统: [ iOS 13.5、]
  • HBuilderX版本: 2.7.9.20200527
  • uni-app版本: 2.7.9.20200527
  • 设备信息: [iPhoneSE 模拟器、Chrome浏览器 版本 80.0.3987.132]

补充信息

createIntersectionObserver,observe方法没有正确计算出两个节点相交范围。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题