抱歉,这方面没有示例,但我认为这很容易理解。
我的网站上有一个固定的背景,目前是这样实现的:
#background {
position: fixed;
top: 0;
bottom: 0;
left: 0;
right: 0;
background-color: #28305e;
background-image: url(../images/background.jpg);
background-size: cover;
-moz-background-size: cover;
background-position: center center;
z-index: -10;
}
<div id="background"></div>
到目前为止,这在所有浏览器中都很棒,除了移动浏览器在向下滚动时会隐藏地址栏。当地址栏被隐藏时,视口会垂直扩展,背景图像会自行调整大小。在这个特定的网站上,用户上下滚动是很常见的,而且效果会分散注意力。
关于解决此问题或以不同方式实施背景的任何想法或策略?
我可以将整个东西包装在一个固定的容器中,并将溢出-y设置为滚动,这可以防止地址栏被隐藏,但我不想这样做(谷歌眼镜无法滚动浏览这些容器,哈哈...也想在那里演示)。
我一直在尝试考虑提供背景图像的东西:使用某种缓冲区覆盖功能,以便它渲染大于视口,并且除非视口扩展到该缓冲区之外,否则不会重新渲染,但我'不知道如何实现。
编辑:我实际上确实实现了这一点,并在下面的答案中详细说明了该过程。但是,即使使用此缓冲区设置(将背景图像的高度扩展为比视口高度大 60+ 像素),在地址栏隐藏时,它仍然会显示一个空白的背景色段,并且一旦你停止滚动,它会渲染背景图像的其余部分。
仍在寻找一种方法来保持本机地址栏隐藏功能(现已在 iOS 8 中扩展到 iPad 上的 iOS Safari),并且还有一个全屏背景图像,即使在隐藏地址时视口改变高度,它也始终完全呈现酒吧。开始怀疑我是否应该为所有浏览器提交错误报告......