gpt4 book ai didi

javascript - iOS touchstart 和 touchmove 之间的延迟?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:45:39 25 4
gpt4 key购买 nike

我正在尝试将我的网络应用程序转换为移动设备可用的形式。我正在尝试构建对水平滚动等触摸手势的支持。我在我的应用中发现了一些奇怪的行为。

我用 touchstart 事件开始一个手势,然后在 touchmove 上滚动。但是,我的应用程序在接收这两个事件之间有 500-700 毫秒的延迟。据我所知,我的应用在这两个事件之间没有做任何其他工作。

其他方面:代码是用jquery写的,使用

  $(element).bind(touchmove, function(ev) {return myobject.DoTouch(ev) } 

如果 DoTouch 命令只是检查 ev.type,记录触摸位置,并返回 false。

有什么想法可以解决这个问题吗?触摸和从应用程序获得响应之间的延迟非常烦人。

最佳答案

是的。事实证明,这就是 iOS 的工作原理。我拉自己的头发有一段时间了。在这里阅读更多:http://developer.apple.com/library/ios/#DOCUMENTATION/AppleApplications/Reference/SafariWebContent/HandlingEvents/HandlingEvents.html .本质上,如果 iOS 认为它可以将其作为内部 PAN 手势来处理,它会甚至根本不会发送 touchmove 事件。

在我的项目中,我发现如果观看者非常刻意地做出 touchmove 手势并在移动结束时在抬起手指之前停顿一段时间,那么 touchmove 事件实际上是, 正如人们所期望的那样发送。因此,记录的行为与现实相比可能有点不确定,这只会增加困惑和我的调试工作。

无论如何,如果 iOS 在内部将事件处理为 PAN 手势,它会在 touchend 之前发送一个 scroll 事件。在我的项目中,我能够使用它来设置我用来区分拖动手势(通常在我的 touchmove 处理程序中发送)的标志,并忽略独立的 touchend 处理程序中与我自己的处理无关的任何行为滚动处理。

我希望这对您(和其他人)也有帮助!

关于javascript - iOS touchstart 和 touchmove 之间的延迟?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9779070/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com