这三种方法我都试过了,但都无济于事:
<meta name=”viewport” content=”width=device-width; initial-scale=1.0; maximum-scale=1.0; user-scalable=0;” />
<meta name=”viewport” content=”width=device-width; initial-scale=1.0; maximum-scale=1.0; user-scalable=false;” />
<meta name=”viewport” content=”width=device-width; initial-scale=1.0; maximum-scale=1.0; user-scalable=no;” />
每个是不同的值,我发现谷歌搜索或SO搜索推荐,但没有一个'user-scalable=X'值似乎是工作的
我还尝试用逗号来分隔值,而不是分号,运气不好。然后我尝试只呈现用户可扩展的价值,但仍然没有成功。
更新
从苹果的网站上得到了这个,它是有效的:
<meta name="viewport" content="width=device-width, user-scalable=no" />
事实证明,问题是不标准的引号,因为我从一个网站复制了元标签,正在使用他们,哎呀
截至今天(2022年10月),在iOS 14.8上,我可以完全防止双击缩放的唯一方法是:
document.addEventListener("click", (e) =>
{
e.preventDefault();
})
即使是这样的:
* {
touch-action: none !important;
}
(这显然是不现实的,但只是为了演示目的)在每种情况下都是不够的。事实证明,任何我处理过的for元素点击,双击它将导致几乎不可逆的放大,完全忽略触摸操作设置。但是如果我在点击处理程序中调用preventDefault(),它就不会缩放。因此,到目前为止,在文档级别上这样做似乎就足够了,这样我就不必每次处理单击时都这样做。
我不知道这可能会有什么副作用,但我相信如果人们想到了什么,他们会插话的。
我设法通过向HTML头添加以下内容来阻止这种行为。这适用于移动设备,因为桌面浏览器在使用鼠标滚轮时支持缩放。这在桌面浏览器上不是什么大问题,但考虑到这一点很重要。
<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no" />
和下面的规则到CSS样式表
html {
-webkit-text-size-adjust:没有;
touch-action:操纵;
}
编辑:在ios10之后可能无法工作,请参阅下面基于触摸动作的解决方案。
您的代码将属性双引号显示为花哨的双引号。如果花哨的引号出现在您的实际源代码中,我猜这就是问题所在。
这对我来说在iOS 4.2的Mobile Safari上是有效的。
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />