Rumah > hujung hadapan web > tutorial js > Bagaimana untuk Memaksa DOM Redraw pada Chrome/Mac?

Bagaimana untuk Memaksa DOM Redraw pada Chrome/Mac?

Mary-Kate Olsen
Lepaskan: 2024-11-29 05:02:13
asal
248 orang telah melayarinya

How to Force a DOM Redraw on Chrome/Mac?

Forceful DOM Redraw pada Chrome/Mac

Apabila menghadapi masalah rendering dengan Chrome pada Mac, kaedah tradisional untuk mencetuskan redraw gagal disebabkan oleh pengoptimuman dilaksanakan dalam pelayar. Artikel ini meneroka pendekatan alternatif yang memanfaatkan manipulasi keterlihatan elemen induk untuk memaksa lukisan semula tanpa bergantung pada sifat offsetHeight.

Common Hack for Redraw

Dalam kombinasi penyemak imbas lain , penggodaman berikut berkesan mencetuskan lukisan semula:

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

Dengan mengubah suai sifat CSS yang tidak digunakan, kemudian meminta maklumat yang memaksa pengiraan semula (seperti ketinggian elemen), dan akhirnya memulihkan sifat asal, lukisan semula dicapai.

Pengoptimuman Chrome/Mac

Malangnya, Chrome pada Mac memintas penggodaman ini dengan mendapatkan semula offsetHeight tanpa mencetuskan redraw.

Alternatif Redraw Hack

Untuk memaksa redraw pada Chrome/Mac, penyelesaian berikut dicadangkan:

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

Kaedah ini memperkenalkan perubahan yang boleh dilihat pada sempadan elemen, yang memaksa penyemak imbas untuk melukis semula. Tamat masa diperlukan untuk memastikan lukisan semula berlaku sebelum sempadan kembali kepada keadaan asalnya.

Pilihan Tambahan

Kaedah lain untuk memaksa lukisan semula termasuk:

  • Menyembunyikan dan kemudian menyahsembunyikan elemen induk menggunakan jQuery:
$('#parentOfElementToBeRedrawn').hide().show(0);
Salin selepas log masuk
  • Memasukkan nod teks kosong ke dalam elemen:
var forceRedraw = function(element) {
    ...
}
Salin selepas log masuk

Kaedah ini memastikan lukisan semula yang lebih langsung tanpa melibatkan manipulasi CSS.

Atas ialah kandungan terperinci Bagaimana untuk Memaksa DOM Redraw pada Chrome/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