Android设备在Chrome浏览器中滚动时记录错误的pageX/pageY

Android设备在Chrome浏览器中滚动时记录错误的pageX/pageY,android,jquery,google-chrome,touch,Android,Jquery,Google Chrome,Touch,在运行Android 4.0.4的三星Galaxy Tab 10.1上测试我的应用程序时,我注意到向下滚动页面后,pageY值会变得不正确 您可以使用此处提供的演示来测试此问题: 看起来返回的pageY值实际上是真实的pageY值+document.body.scrollTop值 这是使用默认internet浏览器和Chromev38的Galaxy选项卡上的一个问题。不过,我也使用Firefox进行了测试,完全没有问题 还有其他人有这个问题吗?我只能使用Android设备进行测试,有人知道新版

在运行Android 4.0.4的三星Galaxy Tab 10.1上测试我的应用程序时,我注意到向下滚动页面后,pageY值会变得不正确

您可以使用此处提供的演示来测试此问题:

看起来返回的pageY值实际上是真实的pageY值+document.body.scrollTop值

这是使用默认internet浏览器和Chromev38的Galaxy选项卡上的一个问题。不过,我也使用Firefox进行了测试,完全没有问题

还有其他人有这个问题吗?我只能使用Android设备进行测试,有人知道新版本的Android是否修复了这个错误吗


在网页上,我遇到了这个问题,我使用mousemove事件设置标记在图形上的位置。我使用jquery.ui.touch.js模拟触摸事件。当touchmove发生时,pageY值实际上是正确的,只有在我点击Galaxy选项卡上的屏幕时,才会返回错误的值。这使得修复不正确的pageY值变得困难

对于andriod,触摸事件似乎具有正确的pageX/pageY值,因此如果设备是android,我必须运行一个单独的函数来使用这些触摸事件

以下是一个简明示例:

if(navigator.userAgent.toLowerCase().indexOf("android") > -1){
   $('html').on("touchstart touchmove touchend", function(e){
       console.log(e.originalEvent.changedTouches[0].pageY);
   });
}else{
   $('html').mousemove(function(e){
       console.log(e.pageY);
   });
}