iOS 11 |手机| JavaScript |触摸事件并不总是触发

时间:2018-03-03 00:16:05

标签: javascript ios mobile ios11 touch-event

大家晚上好,

我在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上不断运行?

干杯!

1 个答案:

答案 0 :(得分:0)

在进一步调查中,我发现了这些额外信息:

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