如何从MSPointerMove事件中获取指针的当前位置?

时间:2014-12-04 15:58:53

标签: javascript internet-explorer dom internet-explorer-10 pointer-events

目前,我正在尝试为应该在特定范围内拖放的HTML元素实现触摸支持。它正在使用touchmove在Android和iOS平板电脑上运行,但在Windows平板电脑上尚未在IE 10上运行。我设法捕获了MSPointerMove事件,我认为应该有一个pageX和pageY属性,但当我console.log这些时,我得到undefined。使用手势事件不是一种选择,因为我需要知道它在轴上拖动的距离。

那么,我应该寻找什么属性?

2 个答案:

答案 0 :(得分:0)

我不确定HTML页面是如何显示的,而是放style="-ms-touch-action: none"。可能是因为mousemove事件的默认设置是拖动屏幕,而不是注册移动的鼠标。

答案 1 :(得分:0)

不幸的是,似乎我的问题没有包含足够的细节来包含实际问题 - 我可以测试的平板电脑无法访问互联网,因此我无法提供JSFiddle来证明问题。

所以问题是我使用的是Angular,它使用了一种包装事件的jQuery形式。通常,这很好:不必检测当前浏览器关于事件对象的特定实现细节,jQuery设置包装器事件对象本身的pageXpageY属性,以便您可以总是自信地访问这些属性。

然而:jQuery,至少在我使用的版本(1.10.2)中,还不知道如何处理MSPointer事件(或{{1在IE11中使用的事件,就此而言)。因此,虽然我有一个包装器事件对象,但没有pointerpageX属性。

解决方法是访问pageY,即特定于浏览器的事件。由于此规范看起来只是由IE实现,因此假设此对象的构造方式与IE构造它的方式相对安全,并直接访问event.originalEventpageX属性。 / p>