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