iOS/Android/Chrome 移动设备上地址栏隐藏时背景图片跳转
使用 Twitter Bootstrap 的响应式网站经常会遇到背景图片跳转的问题在 iOS Safari、Android 浏览器或 Android 版 Chrome 上滚动时,图像会移动或跳跃。出现这种情况是由于地址栏调整了大小并改变了背景图像容器 div 的大小。
原因和解决方案
罪魁祸首在于使用固定高度 ( 100%) 和背景大小:背景 div 的覆盖物。当地址栏缩小时,它会改变包含元素的高度,从而导致背景图像调整大小和重新定位。
一种可能的解决方案是将背景 div 的高度设置为 100vh(视口高度)。然而,iOS 有一个 vh 错误,导致这种方法无法一致工作。
或者,更可靠的解决方案是使用 JavaScript 根据视口大小设置背景 div 的静态高度。这种方法避免了错误行为并防止滚动期间图像跳跃。以下代码演示了此解决方案:
var bg = $("#bg1, #bg2"); function resizeBackground() { bg.height($(window).height()); } $(window).resize(resizeBackground); resizeBackground();
但是,此方法可能会在向下滚动时引入间隙。为了缓解这种情况,建议在高度上添加 60px 的缓冲区,如 swiss 的建议:
function resizeBackground() { bg.height( $(window).height() + 60); }
虽然此解决方案在地址栏存在时牺牲了某些背景内容的可见性,但它阻止了用户避免在滚动过程中遇到任何间隙或不一致。
以上是为什么我的响应式网站在手机上地址栏隐藏时背景图片会跳转?的详细内容。更多信息请关注PHP中文网其他相关文章!