白羽
白羽
  • 发布:2019-04-28 01:55
  • 更新:2019-04-28 16:43
  • 阅读:2161

【报Bug】touchend事件的changedTouches[i].clientY与touchstart、touchmove事件的touches[i].clientY不一致

分类:uni-app

实测发现,uniapp的touchEnd事件的changedTouches[i].clientY比touchstart和touchmove事件的touches[i].clientY整整大了69像素。这算不算是一个bug呢?它们不应该一致的吗?

个人的猜测:69 = 44 + 25,正好是状态栏高度+ 顶部导航栏高度。也就是说,touchstart和touchmove事件的touches[i].clientY不包含状态栏高度+ 顶部导航栏的高度,而touchEnd事件的changedTouches[i].clientY包含了状态栏高度+ 顶部导航栏的高度。这不应该呀!

进一步测试发现,69这个差值仅当手指触摸屏幕并适当来回微小移动后,松开手指时才会出现。

根据官方资料,状态栏的高度并不总是25,所以js无法简单通过减掉69修正上述问题。所以,在这里我顺便想请教一个问题:如何在js代码中,以多端兼容的方式,获取状态栏和顶部导航栏的高度?

感谢!

2019-04-28 01:55 负责人:无 分享
已邀请:
ZGH0709

ZGH0709

你在哪个平台上测试的, 是多次 move 时, touchEnd 都比 move 和 start 大了69 吗,比每一个move 还是移动中的最后一个 move 点, 不管起点与终点如何选择??
请详细描述问题,以便 bug 复现。

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