【发布时间】:2018-02-20 09:33:08
【问题描述】:
我正在设计一个主要专注于数据输入的网站。在我的一个表单中,我有按钮可以快速增加和减少表单字段中的数值。我正在使用
<meta name="viewport" content="width=device-width, height=device-height, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
禁用似乎使用 IOS 的 Firefox 应用程序工作的缩放。然而,当另一位用户使用 Safari 进行测试时,点击按钮太快导致页面放大,分散了用户的注意力,无法快速增加价值。看来,从 IOS 10 开始,苹果出于可访问性的原因删除了 user-scalable=no,这就是为什么它仅适用于 Firefox 等第三方浏览器的原因。我发现最接近禁用双击缩放的是这个
var lastTouchEnd = 0;
document.addEventListener('touchend', function (event) {
var now = (new Date()).getTime();
if (now - lastTouchEnd <= 300) {
event.preventDefault();
}
lastTouchEnd = now;
}, false);
来自https://stackoverflow.com/a/38573198 但是,这会完全禁用快速点击,虽然可以防止双击缩放,但也会阻止用户快速输入值。有什么方法可以让按钮快速按下,同时禁用双击缩放?
【问题讨论】:
-
减去两个touchend事件之间的时间戳,如果值小于数字,例如100,则取消事件,排除特定类的按钮,只需为事件的目标dom添加if语句.
标签: javascript html ios iphone ios10