如何让Android响应滑动触摸操作?

3

我正在创建一个网络应用程序,其中包含具有overflow: scroll样式的div。由于Android浏览器不支持此功能,因此我需要使用自己的自定义函数来进行触摸和拖动。

$([element]).
.bind('touchmove', function(event) {
    event.preventDefault();
    // Move elements around as page scrolls, using event.pageY
})
.bind('touchstart', function(event) {
    event.preventDefault();
    // Do stuff to set up scrolling event.
}

这在iOS设备上运行良好。然而,在Android设备上却无法正常工作。

通过console.log,我发现event.pageY始终被设置为零(在iOS中,它会告诉您触摸点与页面其余部分的关系)。我还收到以下晦涩的消息:

W/webview (21798): Miss a drag as we are waiting for WebCore's response for touch down.

关于这个问题的数据很少,但似乎情况是Android直到你松开手指才会注册触摸事件。我不太相信这一点,因为普通页面可以正常滚动。我只是不知道如何让它识别pageY的真实值,而不是忽略触摸的Y值。

感谢您的阅读!

1个回答

6

请使用:

event.touches[0].pageY

代替:

event.pageY

这样就可以正常工作了。


抱歉回复晚了。一位同事在我重新开始这项任务时,于一周前向我指出了相同的解决方案,它起到了作用 - 非常感谢! - Tom Murray
1
如果您能接受这个答案,将会对所有人都有所帮助。 - Abu Saad Papa

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接