8

windows phone 8 是否完全支持默认浏览器中的触摸事件?

它是否开箱即用,以便网页可以检测到任意 touchmove 事件?

我遇到了一些浏览器的问题,这些浏览器劫持了 touchmove 事件以用作其界面作为滑动手势。windows phone 8浏览器会做这样的事情吗?

谁能指出有关 Windows Phone 8 触摸事件的任何文档?

编辑:

这里有一个页面可以让拥有 Wonders Phone 8 的人测试触摸功能:http: //blogs.msdn.com/b/ie/archive/2011/10/19/handling-multi-touch-and-所有浏览器中的鼠标输入.aspx

如果有人可以尝试一下并让我知道它是否有效,我将不胜感激。

但是,有一些评论......

SnarkMaiden 2011 年 10 月 20 日上午 11:17 # 只是为了好奇;我有一台带笔和触摸的平板电脑——在 IE9 中,我可以用笔在现场绘图,但用手指只能滚动页面。这是预期的行为吗?泰德约翰逊 [MSFT] 2011 年 10 月 20 日上午 11:28 #

@SnarkMaiden:不幸的是,是的,这是 IE9 中的预期行为和 IE10 中的文档模式 9。IE9 无法覆盖默认的平移手势。IE10 的 10 模式有一个新的 CSS 属性,“-ms-content-zooming: none”,它可以禁用对目标元素的平移和缩放。顺便说一句,这个博客在 IE10 中以文档模式 9 运行。因此,即使是 IE10 触摸用户也看到了这种行为。

因此,即使在设备上可行,也可能无法从该页面工作。

4

2 回答 2

37

您应该在这里查看:更新触摸和指针事件(Windows Phone 开发人员官方博客文章)。


编辑:引用链接文档的相关部分

WebKit 和 Internet Explorer 10 处理触摸事件的方式不同。WebKit 支持独立于鼠标处理的触摸界面;IE10 将触控、鼠标和触控笔组合成一个界面(指针)。指针事件模型也已提交给 W3C,以便在指针事件工作组下进行标准化。尽管它们不同,但模型通常相似,因此通常可以通过最少的代码更改添加对指针事件的支持。

添加指针事件监听器

指针 API 使用标准的“向下、移动、向上”事件模型。因此,将现有事件处理程序的侦听器连接到指针事件很简单。

this.element.addEventListener("touchstart", eventHandlerName, false); 
this.element.addEventListener("touchmove", eventHandlerName, false);
this.element.addEventListener("touchend", eventHandlerName, false);

if (window.navigator.msPointerEnabled) {
  this.element.addEventListener("MSPointerDown", eventHandlerName, false);
  this.element.addEventListener("MSPointerMove", eventHandlerName, false);
  this.element.addEventListener("MSPointerUp", eventHandlerName, false);
}
this.element.addEventListener("touchstart", eventHandlerName, false);
this.element.addEventListener("touchmove", eventHandlerName, false);
this.element.addEventListener("touchend", eventHandlerName, false);

关闭默认触摸行为

Internet Explorer 10 中的指针事件模型要求您明确指出页面的哪些区域将具有自定义手势处理(使用您刚刚添加的代码),以及哪些区域将使用默认手势处理(平移页面)。您可以通过在应该使用 -ms-touch-action 属性选择退出默认手势处理的元素上添加标记来做到这一点。例如:

<div id="slider" style="overflow: hidden;">

<div id="slider" style="overflow: hidden; -ms-touch-action: none;">

除了没有,Windows Phone 8 上的 IE10 还支持 pan-x 和 pan-y 属性,它们指定浏览器应该处理水平或垂直手势,而自定义 JavaScript 处理程序应该处理其他一切。

于 2012-11-16T11:26:09.897 回答
2

看起来这将类似于 Windows 的 IE 10,但有一些例外......

来自MSDN,“Windows Phone 的 Web 开发”

Windows Phone OS 8.0 的 Internet Explorer中不支持的功能: Internet Explorer 10 的桌面版本支持以下功能,但 Windows Phone OS 8.0 的 Internet Explorer 不支持以下功能。

...

CSS Touch 视图——特别是概览、滚动和加速滚动。

与手势事件相关的旋转和角度事件。

更新:更新中 的链接适用于手机的 IE 10。Touch 在 SVG 画布中使用多点触控进行绘制。(它不会在该区域滚动页面,但会在页面的其余部分滚动)。

于 2012-11-15T12:06:15.517 回答