„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie kann ich die Höhe versteckter Elemente in jQuery effizient ermitteln?

Wie kann ich die Höhe versteckter Elemente in jQuery effizient ermitteln?

Veröffentlicht am 05.11.2024
Durchsuche:872

How to Get the Height of Hidden Elements in jQuery Efficiently?

Ermitteln der Höhe versteckter Elemente in jQuery

Beim Umgang mit versteckten Elementen kann das Abrufen ihrer Höhe eine Herausforderung sein. Der herkömmliche Ansatz, das Element vorübergehend anzuzeigen, um seine Höhe zu messen, und es dann wieder auszublenden, scheint ineffizient. Gibt es eine optimalere Lösung?

jQuery 1.4.2-Ansatz

Hier ist ein Beispiel mit jQuery 1.4.2:

$select.show();
optionHeight = $firstOption.height(); // Obtain height after displaying the element
$select.hide();

Diese Methode hat den Nachteil, dass sie die Sichtbarkeit des Elements verändert, was zu unerwünschten Nebenwirkungen führen kann.

Den Stil des Elements hacken

Ein alternativer Ansatz besteht darin, den Stil des Elements zu manipulieren, um es beim Berechnen seiner Höhe unsichtbar zu machen:

var previousCss = $("#myDiv").attr("style"); // Store the original style

// Set visibility to 'hidden' and display to 'block'
$("#myDiv").css({
    position: 'absolute', // Optional if the element is already absolute
    visibility: 'hidden',
    display: 'block'
});

optionHeight = $("#myDiv").height(); // Measure height with modified visibility

// Restore the original style
$("#myDiv").attr("style", previousCss ? previousCss : "");
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3