微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

臭名昭著的高度:Android 版 chrome 上的 100% 问题 - 地址栏

如何解决臭名昭著的高度:Android 版 chrome 上的 100% 问题 - 地址栏

我创建了一个侧边栏overflow: hidden 的 Angular 应用。但是,在 Chrome for Android 中查看网络应用程序时,滚动文档时:

  1. chrome 地址栏轻轻向上滑动
  2. 100% 实际尺寸保持不变,直到您 TouchEnd 为止

height 100 remains until scrolling is finished

The darkgrey sidebarheight: 100%,因此顶部栏通常应始终保持可见,并始终填充顶部栏和最底部间的剩余空间。

我已经尝试了几种方法解决这个问题。页脚有 height: calc(100% - 55px) 并且这个实际上总是正确呈现。所以这让我尝试使用 bottom: 0 而不是 top: 55px; bottom: 0。但是从您同时设置 height: calc(100% - 55px)top 的那一刻起,结果与设置高度相同。

有没有人知道在地址栏出现/消失时让视口调整其高度的方法

解决方法

我能够通过

解决这个问题

创建一个 css 变量 (variables.scss)

:root {
  --viewport-height: 100%;
}

不要使用100%,而是使用var(--viewport-height)

height: calc(100% - 55px);

变成

height: calc(var(--viewport-height) - 55px);

然后绑定到 visualViewport.resize 事件(此处必须使用 addEventListener

if (!serverSide) {
  visualViewport.addEventListener('resize',() => {
    document.documentElement.style.setProperty('--viewport-height',`${visualViewport.height}px`);
  });
}

确保没有为 height 属性设置过渡。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。