我正在使用Mobile Angular UI构建移动网站。几乎完成后,我试着在我的移动设备上进行测试。我意识到:当我向下滚动页面时,浏览器的导航栏(即iPhone上的Safari,Android设备上的Chrome)不会像浏览普通网站时那样自动隐藏。
如这些网站:
Mobile Angular UI Demo(我的项目的index.html几乎与此index.html相同)
有修复吗?或者只是ng-view的一个缺点,我将不得不处理它?
非常感谢任何输出。提前谢谢。
答案 0 :(得分:1)
遗憾的是,除非你想使用不同的主题或制作自己的主题,否则无法解决这个问题。
这是由CSS引起的。默认情况下,在Mobile Safari中滚动感觉不是原生的 - 与本机应用相比,页面滚动速度更慢。
为了获得更流畅,有弹性,原生感觉的iOS滚动,使用高度为窗口高度100%的父元素(div
或body
),它具有一个overflow-y: scroll
财产。
此外,您的一些主题功能(如滑出导航)可能需要此CSS实现才能正常工作。
滚动时,您在该元素内滚动 - 您不滚动页面。移动Safari会在页面滚动时缩小地址栏,但是当添加此CSS时,它会检测到页面不需要滚动(因为所有元素的父元素都是窗口高度的100%而不是超过那个)。这意味着页面不滚动,而页面上的子元素具有滚动的内容),Mobile Safari不检测页面滚动。这不能改变。我在my website上有类似的实现。
我做了CodePen,显示了这种效果是如何产生的。由于身体(灰色)不需要滚动 - 因为它是500px高,小于窗口高度 - 滚动发生在允许滚动的一个元素中。 Mobile Safari不知道您希望此父元素的行为与整个页面相同,所以很遗憾无法修复此问题。在上面的笔中,蓝色元素是模拟整个页面的父元素。子元素只是用于添加高度/可滚动内容。