如何让Android响应触摸拖动

How do I get Android to respond to touch drags?

本文关键字:触摸 拖动 响应 Android      更新时间:2023-09-26

我正在创建一个带有overflow: scroll样式的div的web应用程序。由于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,我找到了这个事件。pageY总是被设置为0(在iOS中,它会告诉你你的触摸与页面其他部分的关系)。我还得到以下神秘的消息:

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

这方面的数据很少,但似乎是Android在你取消触摸之前实际上不会注册触摸事件。我不相信,因为正常的页面滚动得很好。我只是不知道如何让它识别pageY的真实值,而不是忽略触摸的y值。

感谢您的关注!

请使用:

event.touches[0].pageY

代替:

event.pageY