Wie bestimme ich scrollHeight?

94

Wie bestimme ich scrollHeight einer Division mit CSS-Überlauf: Auto?

Ich habe es versucht:

$('test').scrollHeight();
$('test').height(); but that just returns the size of the div not all the content

Letztendlich versuche ich einen Chat zu erstellen und habe immer die Bildlaufleiste zur aktuellen Nachricht auf dem Bildschirm.

Also dachte ich ungefähr so:

var test = $('test').height();
$('test').scrollTop(test);

Danke dir,

Brian

Brian
quelle
Was ist falsch an der Verwendung von scrollHeight ()?
Badr Hari
2
@BadrHari: scrollHeight()In jQuery gibt es keine Funktion.
TJ Crowder
es ist $ ('test'). get (0) .scrollHeight ();
JFouad

Antworten:

88

scrollHeight ist eine reguläre Javascript-Eigenschaft, sodass Sie jQuery nicht benötigen.

var test = document.getElementById("foo").scrollHeight;
Dennis
quelle
Vielen Dank! Dies hat bei mir funktioniert: var height = document.getElementById ("chatLog"). ScrollHeight - $ ('# chatLog'). Height (); $ ('# chatLog'). scrollTop (Höhe);
Brian
6
Was ist mit der Browserunterstützung? Alle Hauptversionen von Browsern unterstützen es? IE8 +?
SexyBeast
2
@ Cupidvogel Die verlinkte MDN-Seite sagt IE8 +
Dennis
314

Richtige Wege in jQuery sind -

  • $('#test').prop('scrollHeight') ODER
  • $('#test')[0].scrollHeight ODER
  • $('#test').get(0).scrollHeight

Ich hoffe es hilft.

Anmol Saraf
quelle
16
+1 für $ ('# test') [0] .scrollHeight, vorausgesetzt, der Fragesteller verwendet bereits jQuery.
Jackson
12
Dies sollte die akzeptierte Antwort sein, da sie die Frage beantwortet.
Invot
Es sollte die akzeptierte Antwort sein. Beachten Sie, dass für diese propMethode jquery Version 1.6 oder höher erforderlich ist. +1 von mir
Vayne
2
Beachten Sie, dass dies nur die scrollHeight des "ersten" gefundenen Elements zurückgibt. Wenn Elemente derzeit "versteckt" sind, erhalten Sie hier möglicherweise eine Null, auch wenn andere eine positive scrollHeight haben, FWIW :)
rogerdpack
@rogerdpack Guter Punkt, Sir! Obwohl er in diesem Beispiel eine ID anstelle einer Klasse als Selektor verwendet, sollte er in Ordnung sein, aber dennoch ein guter Punkt.
dave4jr