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

时间:2012-10-29 21:33:40

标签: google-maps javascript-events touch windows-rt

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

1 个答案:

答案 0 :(得分:12)

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

.disablePanZoom 
{
    -ms-touch-action: none; /* Shunt all pointer events to JavaScript code. */
}

- 编辑 -

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

来自MSDN documentation

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