Heim > Web-Frontend > CSS-Tutorial > Wie erzwinge ich zuverlässig eine DOM-Neuzeichnung in Chrome unter macOS?

Wie erzwinge ich zuverlässig eine DOM-Neuzeichnung in Chrome unter macOS?

Mary-Kate Olsen
Freigeben: 2024-12-26 21:10:15
Original
817 Leute haben es durchsucht

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

DOM-Neuzeichnung auf Chrome/Mac erzwingen: Eine Lösung für Rendering-Probleme

In bestimmten Situationen kann Chrome auf dem Mac HTML/CSS trotz der Markups nicht korrekt rendern Gültigkeit. Eine gängige Lösung besteht darin, eine CSS-Eigenschaft zu ändern und die offsetHeight abzurufen, um ein Neuzeichnen zu erzwingen. Allerdings funktioniert diese Methode in Chrome/Mac nicht mehr effizient.

Um dieses Problem zu beheben, besteht ein alternativer Ansatz, der auf Chrome/Mac funktioniert, darin, den Rand des problematischen Elements vorübergehend zu ändern:

$(el).css("border", "solid 1px transparent");
setTimeout(function()
    {
        $(el).css("border", "solid 0px transparent");
    }, 1000);
Nach dem Login kopieren

Dadurch wird eine Neupositionierung des Elements erzwungen, wodurch ein Neuzeichnen sichergestellt wird. Ein Nachteil ist jedoch die damit verbundene Verzögerung, die optisch ablenken kann.

Eine noch zuverlässigere Methode besteht darin, einen leeren Textknoten in das Element einzufügen:

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);
}
Nach dem Login kopieren

Diese Technik garantiert a Neu zeichnen, ohne dass ein visueller Sprung erforderlich ist. Durch Ändern der Anzeigeeigenschaft und Einfügen eines Textknotens wird ein Reflow des DOM ausgelöst und das Element genau angezeigt.

Das obige ist der detaillierte Inhalt vonWie erzwinge ich zuverlässig eine DOM-Neuzeichnung in Chrome unter macOS?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage