目前,我正在尝试为应该在特定范围内拖放的HTML元素实现触摸支持。它正在使用touchmove在Android和iOS平板电脑上运行,但在Windows平板电脑上尚未在IE 10上运行。我设法捕获了MSPointerMove事件,我认为应该有一个pageX和pageY属性,但当我console.log
这些时,我得到undefined
。使用手势事件不是一种选择,因为我需要知道它在轴上拖动的距离。
那么,我应该寻找什么属性?
答案 0 :(得分:0)
我不确定HTML页面是如何显示的,而是放style="-ms-touch-action: none"
。可能是因为mousemove事件的默认设置是拖动屏幕,而不是注册移动的鼠标。
答案 1 :(得分:0)
不幸的是,似乎我的问题没有包含足够的细节来包含实际问题 - 我可以测试的平板电脑无法访问互联网,因此我无法提供JSFiddle来证明问题。
所以问题是我使用的是Angular,它使用了一种包装事件的jQuery形式。通常,这很好:不必检测当前浏览器关于事件对象的特定实现细节,jQuery设置包装器事件对象本身的pageX
和pageY
属性,以便您可以总是自信地访问这些属性。
然而:jQuery,至少在我使用的版本(1.10.2)中,还不知道如何处理MSPointer
事件(或{{1在IE11中使用的事件,就此而言)。因此,虽然我有一个包装器事件对象,但没有pointer
和pageX
属性。
解决方法是访问pageY
,即特定于浏览器的事件。由于此规范看起来只是由IE实现,因此假设此对象的构造方式与IE构造它的方式相对安全,并直接访问event.originalEvent
和pageX
属性。 / p>