【问题标题】:"touchmove" event is not triggered in Microsoft EdgeMicrosoft Edge 中未触发“touchmove”事件
【发布时间】:2018-10-05 22:00:07
【问题描述】:

我需要根据 touchmove 事件的 clientx 和 clienty 位置在拖动元素时检测元素。在 Chrome 中,可以识别 touchmove 事件并正确返回位置,而在 Microsoft Edge 中无法识别 touchmove 事件。

<div id="ele" style="position:absolute; top:0px; left:0px; width:100px;height:100px;border:1px solid"></div>

$(document).ready(function() {
   document.getElementById('ele').addEventListener('touchmove', function(e) 
   {
       console.log('event triggered');
   })
 });

我在 Edge 中将事件类型设为 mousemove,但我想改为获取 touchmove 事件。有什么办法吗?

【问题讨论】:

    标签: javascript microsoft-edge mousemove touchmove


    【解决方案1】:

    您需要在一些示例代码中添加“passive: false”,如下所示。这是因为默认情况下被动设置为真。我花了几天的时间弄清楚这个!

    document.addEventListener('touchmove', function(e) {
        e.preventDefault();
    }, { passive: false });
    

    编辑。我相信另一篇文章是正确的,而这篇文章是错误的,但是以防万一它不起作用,我将其留在这里,因为其他浏览器需要被动:false 才能按您的要求运行

    【讨论】:

      【解决方案2】:

      尝试将其添加到 HTML 文件中:

      canvas { touch-action: none;}
      

      【讨论】:

        猜你喜欢
        • 2012-08-16
        • 2021-04-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多