我真的是移动HTML5的新手。我将jQuery Mobile用于当前的应用程序,但在隐藏导航栏时遇到一些问题。
我找到此站点:http://m.somethingborrowedmovie.warnerbros.com/。 (我不粘贴此链接来宣传电影。)
我对这个HTML5网站感到惊讶。是否有人对用于隐藏导航栏的方法有任何想法?
菜单也做得很好。是否有构建此类应用程序的框架?
尝试以下操作:
在HTML文件的meta
中添加此head
标记:
<meta name="apple-mobile-web-app-capable" content="yes" />
[在iPhone上使用Safari打开您的网站,并使用书签功能将您的网站添加到主屏幕。
返回主屏幕并打开加标签的站点。 URL和状态栏将消失。
只要您只需要使用iPhone,就可以使用此解决方案。
此外,您在warnerbros.com网站上的样本使用Sencha touch framework。您可以Google it了解更多信息,也可以check out their demos。
[Remy Sharp在他的文章"Doing it right: skipping the iPhone url bar"中对过程进行了很好的描述:
使iPhone隐藏网址栏非常简单,您需要运行以下JavaScript:
window.scrollTo(0, 1);
但是有什么问题?您必须这样做一次高度正确,以便iPhone可以滚动到的第一个像素文档,否则它将尝试,然后高度将加载强制网址栏重新显示。
您可以等到图像加载完毕并且window.onload事件会触发,但这并不总是有效,如果所有内容都已缓存,事件触发得太早,scrollTo永远不会跳。这是使用window.onload的示例:http://jsbin.com/edifu4/4/
我个人使用计时器1秒钟-足够时间在等待渲染时移动设备,但足够长不会太早开火:
setTimeout(function () { window.scrollTo(0, 1); }, 1000);
但是,如果是iPhone(或只是移动)浏览器,所以偷偷摸摸的嗅探(我一般不鼓励这样做,但我对此很满意,可以防止使用“正常”的桌面浏览器跳一个像素):
/mobile/i.test(navigator.userAgent) && setTimeout(function () { window.scrollTo(0, 1); }, 1000);
这的最后一部分,这似乎是我在网上看到的一些例子中缺少的是:如果专门链接到网址片段的用户,即网址上的哈希值它,你不想跳。所以如果我导航到http://full-frontal.org/tickets#dayconf-我希望浏览器滚动很自然地到达id为dayconf的元素,而不跳到顶部使用scrollTo(0,1):
/mobile/i.test(navigator.userAgent) && !location.hash && setTimeout(function () { window.scrollTo(0, 1); }, 1000);
[在iPhone(或模拟器)上尝试一下http://jsbin.com/edifu4/10并且您会看到它只会在您登陆页面时滚动没有网址片段。
到目前为止给出的所有答案的问题是,在某个借用的网站上,向上滚动时,Mac栏仍然完全隐藏,如果您只是使用scrollTo解决方案,然后用户向上滚动,则导航栏会再次显示,似乎是将整个网站都放在div中并进行滚动,因此与其滚动页面,不如滚动页面,而是在div中滚动并隐藏导航栏。显示导航栏的唯一方法是触摸屏幕顶部。
将简单的javascript文档导航到“#”即可。
window.onload = function()
{
document.location.href = "#";
}
这将迫使导航栏在加载时自行移除。