it-swarm.com.de

Wie erhalte ich die wahre Höhe () eines Überlaufs: versteckt oder Überlauf: scroll div?

Ich habe eine Frage, wie ich eine Div-Höhe bekomme. Mir sind .height() und innerHeight() bekannt, aber in diesem Fall erledigt keiner von ihnen die Arbeit für mich. Die Sache ist, dass ich in diesem Fall ein div habe, das über die Breite eines Überlaufs läuft: scroll und das div hat eine feste Höhe.

Wenn ich .height() oder innerHeight() verwende, geben beide die Höhe des sichtbaren Bereichs an. Wie gehe ich aber vor, wenn der Überlauf berücksichtigt werden soll?

148
emilolsson

Verwenden Sie die Eigenschaft .scrollHeight des DOM-Knotens: $('#your_div')[0].scrollHeight

278
reko_t

Weitere Informationen zu .scrollHeight Eigenschaft beziehen sich auf die docs :

Das schreibgeschützte Attribut Element.scrollHeight ist ein Maß für die Höhe des Inhalts eines Elements, einschließlich des Inhalts, der aufgrund eines Überlaufs nicht auf dem Bildschirm angezeigt wird. Der scrollHeight-Wert entspricht der minimalen clientHeight, die das Element benötigen würde, um den gesamten Inhalt in den Ansichtspunkt einzupassen, ohne eine vertikale Bildlaufleiste zu verwenden. Es enthält die Elementauffüllung, jedoch nicht den Rand.

7
Ajeesh Vijay

Eine andere Möglichkeit wäre, den HTML-Code in einem nicht überlaufenden Bereich abzulegen: Verstecktes Element, das außerhalb des Bildschirms platziert ist, wie eine Position absolut oben und links, weniger als 5000 Pixel, und dann die Höhe dieses Elements abzulesen. Es ist hässlich, aber gut funktionieren.

3
user3018731