【问题标题】:iOS 11 | Mobile | JavaScript | Touch events don't always fireiOS 11 |手机 | JavaScript |触摸事件并不总是触发
【发布时间】:2018-08-11 06:27:13
【问题描述】:

大家晚上好,

我在 iOS 11 上发现了一个问题。我检查了以下设备:iPhone 8 (11) 和 6 (11.2)。在 iPhone 7 (10) 上没问题。

复制:

  • 转到可以垂直滚动的网站,例如谷歌搜索。
  • 通过控制台添加以下脚本(或类似内容)。
  • 向下滚动页面并检查控制台的日志。它变得无响应,并且似乎只在页面顶部附近工作。

    function touchHandler(type) { 
        console.log(type);
    }
    
    ['start', 'move', 'end'].forEach((type) => { 
        document.body.addEventListener(`touch${type}`, ({ type }) => {      
            touchHandler(type);   
        });
    });
    

有人知道为什么会这样吗?

如果需要现场示例,请告诉我。我可以用上面的方法轻松复制它。

我希望这是有道理的(我睡着了)。

编辑:

经过进一步调查,我发现了以下额外信息:

  • 触摸事件不会持续触发(与旧 iOS 版本不同)。
  • 事件必须在重新触发之前结束。

尝试拖动两次。它不会第二次输出日志。如果您等待几秒钟,触摸事件将再次起作用。

有没有办法让触摸事件在 iOS 11 上持续工作?

干杯!

【问题讨论】:

    标签: javascript ios mobile ios11 touch-event


    【解决方案1】:

    经过进一步调查,我发现了以下额外信息:

    触摸事件不会持续触发(与旧 iOS 版本不同)。 事件必须在他们重新开火之前结束。 尝试拖动两次。它不会第二次输出日志。如果您等待几秒钟,触摸事件将再次起作用。

    【讨论】:

    • 虽然我将此信息添加到问题中,但它不是我需要的答案。我想要一个解决方案。上文已修改。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-05-29
    • 2011-08-31
    • 1970-01-01
    • 2014-12-04
    • 2015-11-06
    • 2019-11-02
    • 1970-01-01
    相关资源
    最近更新 更多