【发布时间】:2017-06-28 20:28:54
【问题描述】:
我们需要在我们的图片库中防止 Apple 在图片上的强制触摸事件,但仍允许触发“保存图片”标注的长按。我们为我们的 iOS 用户提供了长按图像然后选择“保存图像”的说明,但是如果用户不小心按得太用力并触发了 Force Touch 事件,尤其是当它“弹出”并加载图像时,用户会感到非常困惑在新页面中。
一开始是想监听touchforcechange事件,等到力到一定程度再调用preventDefault。像这样的:
imgEl.addEventListener( 'touchforcechange', 'onTouchForceChange', false )
function onTouchForceChange( e ){
if( e.changedTouches[0].force > 0.5 ){
e.preventDefault()
}
}
但是,这似乎也阻止了长按事件。似乎也没有一个特定的力度级别可以将事件切换到 Force Touch。
将 css 属性 -webkit-touch-callout: none; 添加到图像确实会阻止 Force Touch 事件,但同样会阻止长按时的标注。
任何想法都非常感谢!
【问题讨论】:
-
看起来 WebKit 团队正在调查处理 Force Click 的事件,这可能会提供足够的控制来执行此操作。 webkit.org/status/#feature-force-click-events
-
“但是,这似乎也阻止了长按事件。似乎也没有一个特定的力度级别可以将事件切换到 Force Touch。”这是真的?这可能有一个常数。
标签: javascript ios safari webkit dom-events