iPhone全屏网页头疼

时间:2012-02-29 11:22:20

标签: iphone css fullscreen

我正在制作一个具有“全屏模式”的网页。它是一个普通的网页,直到您单击一个按钮,然后创建一个具有100%高度和宽度的div,并隐藏旧内容。全屏模式提供另一个按钮以返回非全屏模式,该模式隐藏div并取消隐藏原始内容。

这很好用,除了我还想用这个JavaScript方法隐藏浏览器chrome:

        setTimeout(function() { 
        window.scrollTo(0, 1) }, 
        100);

JavaScript向下滚动页面足以使浏览器镶边不再可见。问题是这需要页面比视口高,所以它能够滚动。如果内容的高度为100%,则不会发生这种情况。

我目前的解决方法是在全屏div的底部添加70px的填充。这适用于iPhone,但随后将这个不必要的间距添加到所有设备。这可能会破坏我想要的全屏效果,并在dektop浏览器中创建不必要的滚动条。

有聪明的工作吗?或者我是否需要检测浏览器镀铬高度或检测设备,并相应地添加此填充?

谢谢

1 个答案:

答案 0 :(得分:1)

最好的方法是为设备及其方向编写专用的css。

您可以看到媒体查询以检测设备的方向,并根据该设置设置css。

<link rel="stylesheet" type="text/css" href="ipad.css" media="only screen and (min-device-width: 481px) and (max-device-width: 1024px)" />
<link rel="stylesheet" type="text/css" href="iphone.css" media="only screen and (max-device-width: 480px)" />

隐藏栏使用此脚本:

if (navigator.userAgent.indexOf('iPhone') != -1) {
        addEventListener("load", function() {
        setTimeout(hideURLbar, 0);
        }, false);
        }

        function hideURLbar() {
        window.scrollTo(0, 1);
        }