Heim > Web-Frontend > CSS-Tutorial > Wie erzwinge ich eine DOM-Neuzeichnung in Chrome auf dem Mac?

Wie erzwinge ich eine DOM-Neuzeichnung in Chrome auf dem Mac?

Patricia Arquette
Freigeben: 2024-12-25 03:03:08
Original
658 Leute haben es durchsucht

How to Force a DOM Redraw in Chrome on Mac?

DOM-Neuzeichnen auf Chrome/Mac erzwingen

Problem:
In Chrome für Mac wird ein Neuzeichnen erzwungen Die Verwendung des üblichen OffsetHeight-Tricks funktioniert nicht.

Aktuell Hack:
Eine Problemumgehung besteht darin, einen Rahmen hinzuzufügen und zu entfernen, um das Element optisch zu springen. Es führt jedoch zu einer spürbaren Verzögerung und ist bei kürzeren Timeouts möglicherweise nicht effektiv.

Vorgeschlagene Lösung:
Ein alternativer Ansatz, der sich als erfolgreich erwiesen hat, ist:

// in jQuery
$('#parentOfElementToBeRedrawn').hide().show(0);

// in plain JS
document.getElementById('parentOfElementToBeRedrawn').style.display = 'none';
document.getElementById('parentOfElementToBeRedrawn').style.display = 'block';
Nach dem Login kopieren

Verbesserte Lösung:
Für ein garantierteres Neuzeichnen fügt die folgende Methode einen leeren Textknoten in das ein Element:

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); // Adjust timeout as needed
};
Nach dem Login kopieren

Dieser Ansatz stellt eine vollständige Neuzeichnung des DOM sicher und behebt möglicherweise das Problem der fehlerhaften Darstellung in Chrome für Mac.

Das obige ist der detaillierte Inhalt vonWie erzwinge ich eine DOM-Neuzeichnung in Chrome auf dem Mac?. 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