Rumah >hujung hadapan web >tutorial css >Mengapa Imej Latar Belakang Skrin Penuh Saya Melompat dalam Chrome Mudah Alih dan Bagaimana Saya Boleh Membetulkannya?

Mengapa Imej Latar Belakang Skrin Penuh Saya Melompat dalam Chrome Mudah Alih dan Bagaimana Saya Boleh Membetulkannya?

Linda Hamilton
Linda Hamiltonasal
2024-12-06 00:03:13698semak imbas

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

Isu Offset Imej Latar Belakang dalam Chrome Mudah Alih

Dalam reka bentuk web responsif, adalah perkara biasa untuk menggunakan imej latar belakang skrin penuh yang mengubah saiz dan peralihan dengan lancar . Walau bagaimanapun, pembangun sering menghadapi isu di mana latar belakang melonjak secara tiba-tiba apabila bar alamat dalam iOS Safari, Penyemak Imbas Android atau Chrome pada Android bersembunyi apabila menatal ke bawah.

Punca Isu

Masalah timbul apabila menggunakan div latar belakang ketinggian tetap dengan nilai "penutup" bersaiz latar belakang. Apabila bar alamat mengecil, ketinggian div latar belakang berubah, menyebabkan imej melaraskan semula saiz dan kedudukannya untuk meliputi kawasan yang tersedia.

Penyelesaian 1: Menetapkan #bg1 dan #bg2 Ketinggian kepada 100vh

Percubaan untuk menetapkan ketinggian div latar belakang kepada 100vh (ketinggian viewport) nampaknya seperti penyelesaian yang elegan, tetapi iOS mempunyai pepijat vh yang menghalang pendekatan ini daripada berfungsi dengan pasti.

Penyelesaian 2: Menggunakan Javascript untuk Menetapkan Ketinggian Statik

Memandangkan saiz viewport ditentukan oleh Javascript tidak terjejas oleh bar URL, anda boleh menggunakan Javascript untuk menetapkan ketinggian statik pada div latar belakang berdasarkan saiz viewport. Ini bukan penyelesaian yang ideal, tetapi ia berkesan menghalang imej latar belakang daripada mengubah saiz:

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

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

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

Nota Tambahan

Adalah penting untuk ambil perhatian bahawa isu ini disebabkan oleh bar alamat mengubah saiz dalam platform iOS dan Android. Perubahan terkini dalam penyemak imbas ini menghalang bar URL daripada disembunyikan pada pemuatan halaman menggunakan helah tatal.

Mengatasi Jurang Tatal

Skrip di atas dengan berkesan menghalang latar belakang daripada mengubah saiz, tetapi ia boleh menyebabkan jurang yang ketara apabila pengguna menatal ke bawah. Untuk menangani perkara ini, tambahkan 60px pada ketinggian latar belakang:

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

Pengubahsuaian ini akan menghalang jurang, tetapi ini mungkin menyebabkan bahagian bawah 60px imej latar belakang disembunyikan apabila bar URL hadir.

Atas ialah kandungan terperinci Mengapa Imej Latar Belakang Skrin Penuh Saya Melompat dalam Chrome Mudah Alih dan Bagaimana Saya Boleh Membetulkannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn