我想在移动设备上禁用“缩放”功能。
我应该在视口中添加什么配置?
Answers:
编辑:因为这一直得到评论,我们都知道我们不应该这样做。问题是我该怎么做,而不应该这样做。
将此添加到您的移动设备中。然后以百分比为单位的宽度,就可以了:
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
将其添加到也不能使用视口的设备中:
<meta name="HandheldFriendly" content="true" />
对于每个说这是一个坏主意的人,我想说这并不总是一个坏主意。有时不得不缩小以查看所有内容非常无聊。例如,当您在iOS上输入内容时,它会缩放以使其位于屏幕中央。在此之后您必须缩小,因为关闭键盘无法完成工作。我也同意,当您花大量时间进行出色的布局和用户体验时,您不希望它被缩放弄乱。
但是另一种观点对视力障碍的人也很有价值。但是,我认为如果您的眼睛有问题,您已经在使用系统的缩放功能,因此无需打扰内容。
这将防止用户在ios Safari中进行任何缩放操作,并且还会阻止“缩放至标签页”功能:
document.addEventListener('gesturestart', function(e) {
e.preventDefault();
// special hack to prevent zoom-to-tabs gesture in safari
document.body.style.zoom = 0.99;
});
document.addEventListener('gesturechange', function(e) {
e.preventDefault();
// special hack to prevent zoom-to-tabs gesture in safari
document.body.style.zoom = 0.99;
});
document.addEventListener('gestureend', function(e) {
e.preventDefault();
// special hack to prevent zoom-to-tabs gesture in safari
document.body.style.zoom = 0.99;
});
jsfiddle:https ://jsfiddle.net/vo0aqj4y/11/
不幸的是,由于Apple决定忽略,因此提供的解决方案在Safari 10+中不起作用user-scalable=no
。此线程具有更多详细信息和一些JS技巧:禁用视口缩放iOS 10+野生动物园吗?
IE拥有自己的方式:css属性-ms-content-zooming。将其设置为身体无任何作用或应禁用它。
http://msdn.microsoft.com/zh-CN/library/ie/hh771891(v=vs.85).aspx
:root
/ html
,不是body
。
我认为您可能会追求CSS属性touch-action。您只需要这样的CSS规则:
html, body {touch-action: none;}
您将看到它具有很好的支持(https://caniuse.com/#feat=mdn-css_properties_touch-action_none),包括Safari以及回到IE10。
尝试使用min-width属性。让我解释一下。假设设备的屏幕宽度为400px(对于一个实例)。放大时,字体会越来越大。但是box和div保持相同的宽度。如果使用最小宽度,则可以避免减小div和box。
不确定这是否有帮助,但是我使用了角度锤模块解决了缩小/缩放问题(我想避免用户对我的webapp进行缩放):
在我的app.component.html中,添加了:
<div id="app" (pinchin)="pinchin();">
在我的app.component.ts中:
pinchin() {
//console.log('pinch in');
}