如上代码,使页面限制成640px宽度,但是在有的设备上是失效的,有的是高度好像没跟着缩小~
求解
content=”width=device-width,让其自适应足矣,不知道为何要你那么做
<meta name="viewport" content="width=device-width, target-densityDpi=device-dpi">
<script type="text/javascript">
var phoneWidth = parseInt(window.screen.width);
var phoneScale = (phoneWidth/640);
var viewport = document.querySelector("meta[name=viewport]");
if(isWeixin()){
viewport.setAttribute('content', 'width=640, initial-scale = '+phoneScale+', minimum-scale = '+phoneScale+', maximum-scale = '+phoneScale+', target-densitydpi=device-dpi');
}else{
viewport.setAttribute('content', 'width=640'); window.setTimeout(function(){ viewport.setAttribute('content', 'width=640'); },1000);
}
function isWeixin(){
var ua = navigator.userAgent.toLowerCase(); if(ua.match(/MicroMessenger/i)=="micromessenger") { return true; } else { return false; }
}
</script>
最近新找到的解决方法,有效。但其兼容性还需要再测测,基本主流机型是没出现问题
var width; if(window.orientation===undefined){ width = screen.width; }else{ if(window.orientation==0){ width=Math.min(screen.width,screen.height); }else{ width=Math.max(screen.width,screen.height); } } var scale = width / 640; document.write('<meta name="viewport" content="width=device-width,initial-scale=" + scale + ",maximum-scale=" + scale + ",minimum-scale=" + scale + ",user-scalable=no">');
这样设置<meta name=”viewport” content=”width=device-width, initial-scale=1, maximum-scale=1″>,让其自适应