移动设备上的 Safari 和 Chrome 在页面加载时都包含一个可见的地址栏。当body
页面滚动时,这些浏览器会将地址栏滚动到屏幕外,为网站提供更多空间,如下图所示:
我的网站允许这样做时遇到了一些问题。我正在制作一个 Pokedex,其中包含很长的所有 Pokemon 列表。但是,按照我设置页面的方式,它不想将地址栏滚动到看不见的地方。
我的 html 看起来像:
<body>
<app> <!-- My Angular2 tag for the app, no special styles for this -->
<nav>...</nav> <!-- The red nav bar and hamburger menu, default bootstrap -->
<div class="fluid-container">...</div> <!-- The container for all pokemon entries -->
</app>
</body>
如果我滚动到列表的绝对底部(即 721 个条目),则更多滚动会将地址栏移出屏幕顶部。如果我触摸导航栏并将其向上拖动,则地址栏会移出屏幕。这两种方法似乎都不直观。
我想我可以通过某种方式使用 javascript 滚动页面的主体来隐藏它,但到目前为止我尝试过的方法不起作用。当我这样做时,没有发生可见的滚动。
如何在页面加载后不久滚动页面以隐藏移动浏览器的地址栏?
编辑:我对此研究得越多,如果没有用户交互,它似乎就越不可能做到。如果我需要用户交互,用户在屏幕中央的触摸是否有可能在尝试滚动包含所有条目的 div 之前首先尝试滚动主体?如果这像我想的那样工作,那么它会在滑动列表之前先将地址栏滑开。这有点与默认浏览器行为相反,因此它可能不可能/容易/可靠,但我愿意尝试看看是否有人有任何想法。