javascript - 在 iOS 的 javascript 中禁用长按振动
问题描述
使用 ThreeJS 开发网页游戏。在 iOS 上,长按会在 0.5 秒后创建一个小的触觉振动反馈。
由于我希望用户能够按住手指四处走动,因此这是一种干扰。
我已经为touchStart
, touchEnd
, touchMove
, touchCancel
, 和准备了 preventDefault 和 stopPropagation ,contextMenu
我错过了什么?
每个都是这样实现的:
function onTouchStart(event) {
event.preventDefault();
event.stopPropagation();
...
谢谢!
解决方案
似乎您必须明确选择一个容器并将事件处理附加到该容器。
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/
推荐阅读
- python - 为什么没有 logging.SUCCESS 级别?
- c# - 将对象序列化为类型未知的 JSON
- android - 使用 API 调用重新启动 Rails 数据库,如测试用例
- html - 不同 CSS 的 z-index 是否可以一起工作?
- saga - 当 Saga Orchestrator 失败时该怎么办?
- arrays - 使用默认构造函数初始化声明的数组
- angular - Angular 10中POST请求的空值
- c - 为什么变量在导入 fs.h 时具有不完整的类型“struct file_operations”?
- excel - 如何通过将NA视为1来将Excel中的NA(文本NA)值与数字相加
- neural-network - 如何在 bert 预训练模型中获得最后一个变压器编码器的所有输出,而不仅仅是 cls 令牌输出?