首頁 > web前端 > css教學 > 為什麼我的全螢幕背景影像在行動 Chrome 上出現抖動,如何修復?

為什麼我的全螢幕背景影像在行動 Chrome 上出現抖動,如何修復?

Linda Hamilton
發布: 2024-12-09 08:34:07
原創
802 人瀏覽過

Why Does My Full-Screen Background Image Jitter on Mobile Chrome, and How Can I Fix It?

行動Chrome 上的背景影像抖動

在開發具有全螢幕背景影像的響應式網站,可在行動裝置、平板電腦和平板電腦之間切換桌面上,觀察到iOS/Android 瀏覽器或Chrome上網址列隱藏時背景會輕微跳躍Android.

問題源自於背景圖片的 css 屬性,其中包括「固定」和「覆蓋」設定。當網址列消失時,背景 div 的高度會發生變化,因為它設定為 100% 高度。這反過來會影響背景圖像,導致其調整其大小和位置以適應新的容器大小。

為了解決這個問題,提出了兩種解決方案:

解決方案1:使用CSS vh 單位(不建議)

將背景div 的高度設定為100vh 可以保持所需的行為;然而,iOS 中存在一個已知的vh錯誤,該錯誤會導致視口單位測量不一致。嘗試使用 max-height 或其他解決方法來緩解此問題均不成功。

解決方案 2:使用 Javascript 根據視窗大小設定高度

Javascript 提供了更可靠的方法,因為它不受 URL 欄大小調整的影響。透過確定視窗大小並相應地設定背景 div 的高度,無論網址列的可見性如何,圖像都保持靜態。

這是Javascript 腳本:

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

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

$(window).resize(resizeBackground);
resizeBackground();
登入後複製

其他調整:

雖然Javascript 腳本解決了背景調整大小問題,但可能會出現明顯的間隙向下滾動時。這可以透過在背景高度計算中添加一個小偏移來解決,有效隱藏潛在的間隙。

function resizeBackground() {
    bg.height( $(window).height() + 60); // Add 60px to compensate for gap
}
登入後複製

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

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板