Rumah > hujung hadapan web > tutorial css > Bagaimana untuk Memaksa DOM Redraw dalam Chrome pada macOS?

Bagaimana untuk Memaksa DOM Redraw dalam Chrome pada macOS?

Mary-Kate Olsen
Lepaskan: 2024-12-26 21:10:15
asal
865 orang telah melayarinya

How to Reliably Force a DOM Redraw in Chrome on macOS?

Paksa DOM Redraw pada Chrome/Mac: Penyelesaian kepada Isu Paparan

Dalam situasi tertentu, Chrome pada Mac boleh gagal untuk memaparkan HTML/CSS dengan betul, walaupun penanda kesahan. Penyelesaian biasa melibatkan pengubahsuaian sifat CSS dan mendapatkan semula offsetHeight untuk memaksa lukisan semula. Walau bagaimanapun, kaedah ini tidak lagi berfungsi dengan cekap dalam Chrome/Mac.

Untuk menangani isu ini, pendekatan alternatif yang berfungsi pada Chrome/Mac melibatkan menukar sempadan elemen bermasalah buat sementara waktu:

$(el).css("border", "solid 1px transparent");
setTimeout(function()
    {
        $(el).css("border", "solid 0px transparent");
    }, 1000);
Salin selepas log masuk

Ini memaksa elemen untuk meletakkan semula, memastikan lukisan semula. Walau bagaimanapun, kelemahan adalah kelewatan yang terlibat, yang boleh mengganggu penglihatan.

Kaedah yang lebih dipercayai ialah memasukkan nod teks kosong ke dalam elemen:

var forceRedraw = function(element){
    if (!element) { return; }
    var n = document.createTextNode(' ');
    var disp = element.style.display;
    element.appendChild(n);
    element.style.display = 'none';
    setTimeout(function(){
        element.style.display = disp;
        n.parentNode.removeChild(n);
    },20);
}
Salin selepas log masuk

Teknik ini menjamin lukis semula tanpa memerlukan lompatan visual. Dengan mengubah suai sifat paparan dan memasukkan nod teks, ia mencetuskan DOM untuk mengalir semula dan memaparkan elemen dengan tepat.

Atas ialah kandungan terperinci Bagaimana untuk Memaksa DOM Redraw dalam Chrome pada macOS?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan