ng-view不会自动隐藏移动设备上的地址/导航栏

时间:2015-06-09 21:41:41

标签: javascript android ios angularjs mobile

我正在使用Mobile Angular UI构建移动网站。几乎完成后,我试着在我的移动设备上进行测试。我意识到:当我向下滚动页面时,浏览器的导航栏(即iPhone上的Safari,Android设备上的Chrome)不会像浏览普通网站时那样自动隐藏。

如这些网站:

Mobile Angular UI Demo(我的项目的index.html几乎与此index.html相同)

wReader

有修复吗?或者只是ng-view的一个缺点,我将不得不处理它?

非常感谢任何输出。提前谢谢。

1 个答案:

答案 0 :(得分:1)

遗憾的是,除非你想使用不同的主题或制作自己的主题,否则无法解决这个问题。

这是由CSS引起的。默认情况下,在Mobile Safari中滚动感觉不是原生的 - 与本机应用相比,页面滚动速度更慢。

为了获得更流畅,有弹性,原生感觉的iOS滚动,使用高度为窗口高度100%的父元素(divbody),它具有一个overflow-y: scroll财产。

此外,您的一些主题功能(如滑出导航)可能需要此CSS实现才能正常工作。

滚动时,您在该元素内滚动 - 您不滚动页面。移动Safari会在页面滚动时缩小地址栏,但是当添加此CSS时,它会检测到页面不需要滚动(因为所有元素的父元素都是窗口高度的100%而不是超过那个)。这意味着页面不滚动,而页面上的子元素具有滚动的内容),Mobile Safari不检测页面滚动。这不能改变。我在my website上有类似的实现。

我做了CodePen,显示了这种效果是如何产生的。由于身体(灰色)不需要滚动 - 因为它是500px高,小于窗口高度 - 滚动发生在允许滚动的一个元素中。 Mobile Safari不知道您希望此父元素的行为与整个页面相同,所以很遗憾无法修复此问题。在上面的笔中,蓝色元素是模拟整个页面的父元素。子元素只是用于添加高度/可滚动内容。