gpt4 book ai didi

javascript - "touchend"的 MSPointer 等效项

转载 作者:行者123 更新时间:2023-11-28 08:29:54 27 4
gpt4 key购买 nike

我正在将 HTML5 应用程序的一段代码从 iOS/Android 移植到 Windows Phone 8。在此应用程序中,有一个包含许多元素的垂直 ScrollView 。在原始应用程序中,我使用“touchstart”和“touchend”事件。这意味着每次用户触摸列表时,我都会收到一个 touchstart 事件,即使在滚动后,当用户抬起手指时,我也会收到一个 touchend 事件。

MSPointer 模型的工作方式有所不同。 MSPointerDown 与 touchstart 完全相同,因此这方面没有问题。不过,我无法理解如何对触摸端行为进行建模。 MSPointerUp 是不够的,因为只有当用户在发生 MSPointerDown 的同一容器内抬起手指时才会抛出 MSPointerUp。因此,如果用户触摸列表,然后向上滑动,然后抬起手指,则不会触发该事件。还有 MSPointerOut,当用户离开 MSPointerUp 被触发的容器时触发,这里的问题是,一旦离开容器(因此在列表滚动期间)它就会触发,并且在用户抬起后不会触发它的手指。

我对如何使用 MSPointer 建模“touchend”感到有点困惑,它的触发方式与 Webkit 的触发方式完全相同。

干杯

汤姆

最佳答案

这就是我处理这个问题的方式。

即使向下/移动监听器附加到某个元素,我也会将向上监听器附加到窗口。
这意味着无论用户在屏幕上的哪个位置抬起手指/笔/鼠标(甚至在 PC 上 IE 的浏览器窗口之外),都会触发 Up 事件。
这也意味着您必须在一个函数中处理应用程序中的所有 Up 事件。但是您可以在元素的 Down 事件上设置一个标志(某些全局变量),并在 UP 事件中检查该标志。

我长期以来一直在为 PC 网页上的鼠标事件执行此操作,以处理用户在浏览器窗口外松开鼠标按钮的情况。
当他们不这样做时,这很烦人,就像在谷歌地图街景中,你试图平移很远,并且必须移动鼠标很多,并且你放开了窗口外面的按钮,但它仍然认为你'重新拖动。

关于javascript - "touchend"的 MSPointer 等效项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21992234/

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