Heim >Web-Frontend >js-Tutorial >Wie kann ich die Elementsichtbarkeit im DOM nur mithilfe von JavaScript bestimmen?

Wie kann ich die Elementsichtbarkeit im DOM nur mithilfe von JavaScript bestimmen?

Barbara Streisand
Barbara StreisandOriginal
2024-11-27 22:27:12857Durchsuche

How Can I Determine Element Visibility in the DOM Using Only JavaScript?

Bestimmen der Elementsichtbarkeit im DOM mit reinem JavaScript

Frage:

Können wir bestimmen? ob ein Element im DOM sichtbar ist, ohne auf jQuery angewiesen zu sein? Welche Attribute sollten wir insbesondere überprüfen, um seine Sichtbarkeit sicherzustellen?

Antwort:

Laut MDN-Dokumentation gibt die offsetParent-Eigenschaft eines Elements null zurück, wenn es oder einer seiner Vorgänger vorhanden ist werden über die Anzeigestil-Eigenschaft ausgeblendet. Dies setzt jedoch voraus, dass das Element nicht fest positioniert ist. Wenn auf der Seite keine Position: Fixed-Elemente vorhanden sind, könnte ein prägnantes Skript zur Überprüfung der Sichtbarkeit lauten:

function isHidden(el) {
    return (el.offsetParent === null);
}

Wenn es auf der Seite jedoch Position: Fixed-Elemente gibt, müssen wir leider auf Fenster zurückgreifen .getComputedStyle() für eine gründliche Prüfung, die Auswirkungen auf die Leistung haben kann:

function isHidden(el) {
    var style = window.getComputedStyle(el);
    return (style.display === 'none');
}

Trotz ihrer Anfälligkeit für Randfälle bietet die zweite Option mehr Klarheit. Wenn der Vorgang wiederholt ausgeführt werden soll, ziehen Sie aus Effizienzgründen die erste Option in Betracht und vermeiden Sie die Leistungseinbußen von window.getComputedStyle().

Das obige ist der detaillierte Inhalt vonWie kann ich die Elementsichtbarkeit im DOM nur mithilfe von JavaScript bestimmen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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