【问题标题】:How do I get Android to respond to touch drags?如何让 Android 响应触摸拖动?
【发布时间】:2011-12-02 16:07:47
【问题描述】:

我正在创建一个具有溢出 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 值。

感谢收看!

【问题讨论】:

    标签: javascript android browser webkit touch


    【解决方案1】:

    请使用:

    event.touches[0].pageY

    代替:

    event.pageY

    它会起作用的。

    【讨论】:

    • 抱歉,回复延迟太久。一周前,当我重新开始这项任务时,我的一位同事向我指出了相同的解决方案,并且它奏效了 - 非常感谢!
    • 如果您能接受这个答案,这将对每个人都有帮助。
    猜你喜欢
    • 2016-03-14
    • 2013-09-26
    • 1970-01-01
    • 2018-02-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-17
    • 1970-01-01
    相关资源
    最近更新 更多