meta 标签禁止缩放失效

之前我们能通过设置meta来禁止用户缩放页面   

<meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no;" name="viewport" />  

但是现在,这个标签在部分浏览器中已经失效。

我在网上查了资料,在ios10+已经失效----

为了提高Safari中网站的辅助功能,即使网站在视口中设置了user-scalable = no,用户也可以手动缩放。

在Android的自带浏览器中(例如华为,魅族,小米)第一次手动缩放时,会提示--再次操作可强制缩放网页---;再次缩放也可以缩放;

这一现象意味着meta标签的失效。在Android的chrome中不可以用户缩放(表现正常)--------------亲测

各浏览器开发商逐渐允许用户去缩放网页;这就导致我们开发的产品,在缩放后会发生惨不忍睹的情况;尤其是flex布局的组件。

为了解决这一问题;我选择采用js事件监听来阻止用户的缩放

window.onload=function () {         
 document.addEventListener('touchstart',function (event) {  
           if(event.touches.length>1){  
                event.preventDefault();  
            }  
        })  

        var lastTouchEnd=0;
        document.addEventListener('touchend',function (event) {
            var now=(new Date()).getTime(); 
            if(now-lastTouchEnd<=300){  
                event.preventDefault();  
            }  
            lastTouchEnd=now;  
       },false)  
}
原文地址:https://www.cnblogs.com/timy/p/9141263.html