【发布时间】:2017-01-15 23:39:53
【问题描述】:
所以我注意到移动版 Chrome 将地址栏计算为视口高度。因此,在元素上使用height: 100vh 不起作用,因为当地址栏滚动时,视口高度会发生变化。
我实际上可以find a question 在 ios 上遇到同样的问题,但在进一步调查后,我意识到这发生在所有移动 Chrome 浏览器上。当地址栏滚动出视口,然后再次滚动到视口时,视口高度会发生变化。
这会导致使用vh 的任何元素重新计算导致页面跳转的元素。使用背景图像时非常烦人,因为它会导致图像在滚动时调整大小。
这是代码和an example
.jumbotron {
background-image: url(http://example.com/image.png);
background-size: cover;
background-position: top;
background-repeat: no-repeat;
height: 100vh;
}
您只能在使用移动版 chrome 上下滚动时看到该问题。
我的问题是,我想知道有没有办法解决这个问题,或者如果没有,如何在不导致页面跳转(css 或 js)的情况下计算移动 chrome 上的全高。 p>
http://s.codepen.io/bootstrapped/debug/qadPkz
更新:至于使用 jquery,这是我想出的,它似乎工作得很好:
function calcVH() {
$('.jumbotron').innerHeight( $(this).innerHeight() );
}
$(window).on('load resize orientationchange', function() {
calcVH();
});
如果有人知道他们知道可行的 CSS 替代方案,我希望能够在没有 javascript 的情况下做到这一点。
【问题讨论】:
-
iOs Safari 上的移动菜单有时会遇到同样的问题
-
Derk 如果你有 iOS 设备可以test this out 吗?这是我在上面发布的 javascript 解决方案。如果它有效,我想总比没有好......另外,当你说移动菜单时,你到底指的是什么?谢谢!
-
我的意思是当您单击移动屏幕上的汉堡包图标时,下拉菜单会全屏显示。我现在将对其进行测试...这是您在 iO 上的页面:image,当我向上或向下滚动时,背景图像不会调整大小或任何东西。所以我认为这是一个移动 chrome 错误?
标签: css google-chrome mobile background-image viewport