9

我试图在 iPhone Safari 中获取可用的屏幕尺寸,以便将容器缩小到屏幕的高度,减去状态栏和工具栏。

由于 iOS 总是返回屏幕尺寸,就好像手机是纵向的一样,我使用 screen.availWidth 来计算横向的高度。以下是返回的尺寸:

screen.width; //320
screen.availWidth; //300

20px 的差异考虑了手机顶部的状态栏,但没有考虑到屏幕底部的按钮栏(工具栏)。

我可以使用任何可以返回 268px 的属性吗?

我会这样做 (screen.availWidth - 32) 但用户有可能将该站点添加为桌面书签,在这种情况下,此栏将不存在,并且 300px 值将是正确的。

4

1 回答 1

10

我没有确切的答案,但您可以确定用户是在 Mobile Safari 中还是在具有navigator.standalone属性的桌面书签中。有了这个,你可以决定是否减去 32px。

编辑:找到答案。使用<meta name="viewport" content="user-scalable=no, width=device-width, height=device-height" />,然后可以从中获得正确的值window.innerWidth / window.innerHeight

于 2012-05-09T08:03:57.333 回答