[英]IE11 shunting pointer events into touch events?
我已经创建了一个Web应用程序,该应用程序可以很好地与触摸事件和单击事件以及它们各自的处理程序一起使用。
但是,移动到IE11时会遇到问题。 Touch在其他平台上也可以正常工作。 IE11上的鼠标效果很好。 但是,如果同时使用触摸屏和IE11,则触摸事件将包装为指针事件,而不是触摸事件或单击事件。
有什么方法可以将指针触摸事件全局映射到整个窗口/文档的预定义触摸事件? 默认情况下,似乎已经针对IE11中的点击事件执行了此操作...
我尝试了如下所示的代码示例: JavaScript将触摸事件映射到鼠标事件
并最终得到:
if(window.PointerEvent)
{
...
document.onpointerdown = function(e){
var event = document.createEvent("TouchEvent");
...
}
...
}
但是,document.crateEvent(“ TouchEvent”)上的IE错误声称“不支持”。 但是,Touch事件对象已在IE中记录为受支持: https ://msdn.microsoft.com/zh-cn/subscriptions/dn792856(v=vs.85 ),如http://www.w3.org/中所指定TR /触摸事件/#触摸事件列表类型
我也尝试将其更改为
var event = document.createEvent("UIEvent");
IE允许,但后来无法识别
event.initTouchEvent(someParameters);
我开始相信IE11不支持创建触摸事件。
我也看到过有关更改.css文件以包括以下组合的讨论:
touch-action: none
ms-touch-action: none
pointer-events: none
但是完全禁用触摸会以其他我希望避免的方式破坏应用程序。
有什么方法可以触发触摸事件,而不是Microsoft的指针事件?
我会说您实际上是错误的方法。 有几个pollyfill库可将触摸事件映射到指针事件。 HandJS和jQuery PEP是两个功能良好的示例。 鉴于当前唯一不支持指针事件的现代浏览器是Safari,这似乎是更好的选择( 谁想要指针事件... )。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.