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!