Rumah > hujung hadapan web > tutorial css > Bagaimana untuk Memaksa DOM Redraw/Refresh dalam Chrome untuk Mac?

Bagaimana untuk Memaksa DOM Redraw/Refresh dalam Chrome untuk Mac?

Susan Sarandon
Lepaskan: 2024-12-23 10:57:35
asal
993 orang telah melayarinya

How to Force a DOM Redraw/Refresh in Chrome for Mac?

Paksa DOM Semula/Muat Semula dalam Chrome untuk Mac

Apabila Chrome untuk Mac menemui HTML/CSS yang sah, ia kadangkala memaparkan elemen secara salah atau tidak sama sekali. Semasa memeriksa DOM dalam konsol penyemak imbas biasanya mencetuskan lukisan semula, penyelesaian yang lebih automatik adalah wajar.

Coretan JS berikut berfungsi dengan berkesan dalam kebanyakan penyemak imbas dan sistem pengendalian:

el.style.cssText += ';-webkit-transform:rotateZ(0deg)'
el.offsetHeight
el.style.cssText += ';-webkit-transform:none'
Salin selepas log masuk

Walau bagaimanapun, Chrome untuk Mac memintas lukisan semula yang dicetuskan oleh offsetHeight. Penyelesaian adalah dengan menggunakan setTimeout untuk menukar sempadan elemen buat sementara waktu, memaksa lukisan semula:

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

Pendekatan ini menyusahkan dan ketara. Kaedah yang lebih cekap untuk memaksa lukisan semula pada Chrome untuk Mac ialah memasukkan nod teks kosong ke dalam elemen:

var forceRedraw = function(element){

    if (!element) { return; }

    var n = document.createTextNode(' ');
    var disp = element.style.display;  // don't worry about previous display style

    element.appendChild(n);
    element.style.display = 'none';

    setTimeout(function(){
        element.style.display = disp;
        n.parentNode.removeChild(n);
    },20); // you can play with this timeout to make it as short as possible
}
Salin selepas log masuk

Pendekatan ini menjamin lukisan semula dan lebih cekap daripada kaedah sempadan.

Atas ialah kandungan terperinci Bagaimana untuk Memaksa DOM Redraw/Refresh dalam Chrome untuk Mac?. 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