Microsoft Surface:如何在不被浏览器拦截的情况下允许JavaScript触摸/拖动事件?

sco*_*tts 6 javascript google-maps touch dom-events windows-rt

我的网站上有一张谷歌地图地图,但是当它与微软Surface平板电脑一起使用时,浏览器拦截了"平移"手势 - 它试图转到下一个浏览器窗口.如何让浏览器忽略平移(拖动事件)以使地图正常运行?这样maps.google.com,地图完全可以拖动,因此谷歌必须采用一种解决方法.

Joe*_*can 12

根据MS的"指针和手势事件"指南(此处:http://msdn.microsoft.com/en-us/library/ie/hh673557%28v=vs.85%29.aspx#Panning_and_zooming),您需要添加要禁用平移的元素的CSS类,将"-ms-touch-action"规则设置为"none",如下所示:

.disablePanZoom 
{
    -ms-touch-action: none; /* Shunt all pointer events to JavaScript code. */
}
Run Code Online (Sandbox Code Playgroud)

- 编辑 -

现在有一个非前缀的触摸动作属性,在W3C Pointer Events Candidate推荐中提出.

MSDN文档:

从Internet Explorer 11开始,不再支持此事件的Microsoft供应商前缀版本(-ms-touch-action),可能会在将来的版本中删除.相反,请使用非前缀名称touch-action,这样可以更好地符合标准和未来的兼容性.