首页 > 解决方案 > 在 iOS 的 javascript 中禁用长按振动

问题描述

使用 ThreeJS 开发网页游戏。在 iOS 上,长按会在 0.5 秒后创建一个小的触觉振动反馈。

由于我希望用户能够按住手指四处走动,因此这是一种干扰。

我已经为touchStart, touchEnd, touchMove, touchCancel, 和准备了 preventDefault 和 stopPropagation ,contextMenu我错过了什么?

每个都是这样实现的:

function onTouchStart(event) {
     event.preventDefault();
     event.stopPropagation();
     ...

谢谢!

标签: javascriptiossafaritouch-event

解决方案


似乎您必须明确选择一个容器并将事件处理附加到该容器。

HTML:

<body><div id="body">
    <div>
        test
    </div>
</div></body>

Javascript:

document.getElementById('body').addEventListener("touchstart", (e)=>{
    e.preventDefault();
    e.stopPropagation();
});

附加到 #body div 时的示例:https ://jsfiddle.net/gyfbh35t/2/

附加到文档时不起作用的示例:https ://jsfiddle.net/gyfbh35t/3/


推荐阅读