Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Safari 导航栏 #70

Open
XXHolic opened this issue Jan 22, 2020 · 0 comments
Open

Safari 导航栏 #70

XXHolic opened this issue Jan 22, 2020 · 0 comments

Comments

@XXHolic
Copy link
Owner

XXHolic commented Jan 22, 2020

目录

引子

最近在 iPhone 的 Safari 查看 h5 页面时,发现有些平台的页面向下滚动时,顶部地址栏和底部导航栏会自动收起,整个页面空间多了不少,可以看到更多信息,这种效果比较适合当前业务场景。之前都没怎么关注这个,查找了一些资料,尝试后总结一下。

隐藏 Safari 导航栏

当页面内容过多,向下滚动时,导航栏和地址栏收起的现象,在 Safari 是正常的特性,以下称为默认隐藏。这是一个纯显示页面,移动端访问如下:

61-pure-page

默认隐藏

通过查找资料和对比其它平台的页面,主要的思考方向是页面结构和 CSS 样式。

首先想到在项目里面常会引入一个重置样式的库 normalize.css,看下是否会影响这个效果。这是测试页面,移动端访问如下:

61-normalize-page

测试结果是:不会影响

然后就是对比页面结构,发现了下面几种情况:

  • 滚动容器非 body 元素,默认隐藏无效。这是示例页面,移动端访问如下:

61-no-body

  • 滚动容器为 body 元素,html 设置了样式 overflow: hidden ,默认隐藏无效。这是示例页面,移动端访问如下:

61-no-body

  • 滚动容器为 body 元素,html 默认样式,默认隐藏有效。这是示例页面,移动端访问如下:

61-no-body

一直隐藏

需要按照下面的步骤操作:

  1. 添加下面的标签,意思是让应用以全屏的方式显示,详细见 Supported Meta Tags
<meta name="apple-mobile-web-app-capable" content="yes" />
  1. 用 iPhone 的 Safari 打开页面,使用“添加到主屏幕”。
  2. 回到主屏幕,点击对应图标进入。

这是示例页面,移动端访问如下:

61-full-screen

这种需要用户自己操作多步,推广很难。未找到一直能隐藏导航栏的 h5 示例页面。

显示 Safari 导航栏

在上面的尝试中,一直显示导航栏的情况有:

  1. 滚动容器非 body 元素。
  2. 滚动容器为 body 元素,html 设置了样式 overflow: hidden

iPhone 系统占比

随着时间推移,网上不少方法无效,有些是针对特定的系统,下面可以查看系统占比:

参考资料

🗑️

我叫你一声,你敢扯吗?

最近看完了《环游世界八十天》,不知道为什么,这本书从读高中时代起,就在我的脑海中有印象,直到现在我才花时间看完了。剧情紧凑,故事也有趣,只可惜自己少了想象力,无法想象出书中描述的各地场景,即便有所谓插画,也是非常简洁。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant