iOS为window.innerHeight / Width返回不合适的值
我使用window.innerHeight和window.innerWidth指令来获取浏览器的可用窗口大小。 它与Firefox,safari(在Mac上)和Android工作,但我在iOS中得到奇怪的结果。
iOS始终返回innerHeight = 1091和innerWidth = 980。
我使用iOS SDK的iOS模拟器(我没有iPhone / iPod)。 iPhone和iPhone Retina模拟器返回相同的值。 我不明白他们如何能返回相同的数字,因为2模型有2个不同的屏幕分辨率。
我玩视口参数没有成功。
尝试使用screen.width
而不是window.innerWidth
。
<script> if (screen.width > 650) { .... } </script>
加
<meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.0; user-scalable=no">
到<head>
元素。 这将解决innerWidth
问题。
视网膜具有高密度像素 – 基本上是4个硬件像素到1个逻辑像素。 这就是为什么他们报告相同的决议。
被困在同一个问题上。 这是为我工作的解决scheme。
首先,我正在检测客户端是否是iOS设备。 然后我使用屏幕界面得到正确的值
var iOS = /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream; var iw = (iOS) ? screen.width : window.innerWidth, ih = (iOS) ? screen.height : window.innerHeight;
查看Apple的文档,了解如何为Mobile Safari设置视口以及如何缩放: http : //developer.apple.com/library/safari/#documentation/appleapplications/reference/safariwebcontent/UsingtheViewport/UsingtheViewport.html
基本上,您可以为视口设置一个缩放比例,并通过在HTML页面上设置元标记来将其设置为默认值。
还要根据以下内容在视口元标记中指定高度:
<meta name="viewport" content="width=device-width, height=device-height, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" />
我在我的iPad 2(5.0.1)上使用jQuery $(window).height()时遇到了问题,因为我错过了指定元标记的高度。 join后效果更好。