首頁 >web前端 >css教學 >為什麼我的全螢幕背景圖像在行動 Chrome 中跳轉以及如何修復它?

為什麼我的全螢幕背景圖像在行動 Chrome 中跳轉以及如何修復它?

Linda Hamilton
Linda Hamilton原創
2024-12-06 00:03:13698瀏覽

Why Does My Full-Screen Background Image Jump in Mobile Chrome and How Can I Fix It?

行動Chrome 中的背景圖像偏移問題

在響應式網頁設計中,通常使用可平滑調整大小和過渡的全螢幕背景圖像。然而,開發者經常會遇到這樣的問題:當 iOS Safari、Android 瀏覽器或 Android 上的 Chrome 中的網址列向下滾動時隱藏時,背景會突然跳轉。

問題原因

使用背景大小值為「cover」的固定高度背景 div 時會出現問題。隨著網址列縮小,背景div的高度發生變化,導致影像重新調整其大小和位置以覆蓋可用區域。

解決方案1:將#bg1和#bg2高度設定為100vh

嘗試將背景div 高度設定為100vh(視口高度)看起來很優雅方案,但iOS 有一個vh bug,導致此方法無法可靠運作。

解決方案2:使用Javascript 設定靜態高度

由於Javascript 確定視口大小不受URL 欄的影響,您可以使用Javascript 根據視口大小在背景div 上設定靜態高度。這不是一個理想的解決方案,但它可以有效地防止背景圖像調整大小:

var bg = $("#bg1, #bg2");

function resizeBackground() {
    bg.height($(window).height());
}

$(window).resize(resizeBackground);
resizeBackground();

附加說明

需要注意的是,此問題是由iOS 和Android 平台中調整網址列大小。這些瀏覽器中的最新變更可以使用捲動技巧防止在頁面載入時隱藏 URL 欄。

解決滾動間隙

上述腳本有效地防止了後台調整大小,但當用戶向下滾動時可能會導致明顯的間隙。要解決此問題,請在背景高度上添加 60 像素:

function resizeBackground() {
    bg.height( $(window).height() + 60);
}

此修改將防止間隙,但可能會導致在存在 URL 欄時隱藏背景圖像的底部 60 像素。

以上是為什麼我的全螢幕背景圖像在行動 Chrome 中跳轉以及如何修復它?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn