簡體   English   中英

IE11將指針事件轉移到觸摸事件中?

[英]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庫可將觸摸事件映射到指針事件。 HandJSjQuery PEP是兩個功能良好的示例。 鑒於當前唯一不支持指針事件的現代瀏覽器是Safari,這似乎是更好的選擇( 誰想要指針事件... )。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM