html - iOS Mobile Safari 导航栏/工具栏关于方向更改的问题

标签 html css mobile-safari

我在 13.3 上看到 iOS 移动 Safari 出现了一些奇怪的行为。

我有一个适用于大多数人的网站,一个单页应用程序。因此,我将其高度/宽度保持在 100% 并调整内容以适应。在其他浏览器/设备上一切正常,但 iOS Safari 在从纵向切换到横向再回到纵向时出现问题。

我相信问题与导航栏/工具栏有关,以及当它隐藏时,视口(viewport)如何增加。在 iPhone 8 Plus 上进行测试,当我加载页面并显示条形时,我看到高度为 622 像素。当我旋转到横向时,高度为 414px。当我旋转回纵向时,条形图被隐藏(或导航栏缩小),但高度仍为 622 像素。这在页面底部留下了很大的空白。 window.innerHeight相信它是622px。如果我打开和关闭导航栏,那么 View 会根据我的预期进行调整;高度 697 像素。

如果我使用 100vh 而不是 100%,则页面会延伸到条形后面。

任何提示或解释都会很棒!

初始负载:

On initial load

切换到横向然后再次纵向后:

After switching to landscape and then portrait again

最佳答案

只是遇到同样的问题。
如果我点击白条,工具栏会恢复,
但所有 dom 点击事件都放错了位置。

这是我的解决方法:

window.addEventListener('resize', () => {
  document.body.style.overflow = 'scroll';
  window.scrollTo(0, 0);
  document.body.style.overflow = 'hidden';
});

这不会修复白条,但可能会修复点击事件问题。

关于html - iOS Mobile Safari 导航栏/工具栏关于方向更改的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60192505/

相关文章:

html - 使用 colspan 和 rowspan 的 CSS 表格 - 将类应用于 sibling 的更好方法?

css - 社交分享按钮定位

ios - iOS 上的 Material Design Lite 和 dialog-polyfill 模态对话框

javascript - 控制 CSS 状态 : hover, 事件

html - 表格内的文本对齐类

html - 从左上角旋转一个 div,transform-origin 不起作用

html - Janrain Engage 社交登录在 Bootstrap 3 中看起来很困惑

html - 如何停止样式标签

css - 为 css 动画添加另一个步骤

iphone - 防止 iPhone 旋转时缩放