Come determino scrollHeight?


95

Come faccio a determinare scrollHeight di una divisione usa css overflow: auto?

Ho provato:

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

In definitiva, sto cercando di creare una chat e avere sempre la barra di scorrimento per il messaggio corrente sullo schermo.

Quindi stavo pensando qualcosa di simile a quanto segue:

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

Grazie,

Brian


Cosa c'è di sbagliato nell'usare scrollHeight ()?
Badr Hari

2
@BadrHari: non esiste alcuna scrollHeight()funzione in jQuery.
TJ Crowder

è $ ('test'). get (0) .scrollHeight ();
JFouad

Risposte:


90

scrollHeight è una normale proprietà javascript quindi non è necessario jQuery.

var test = document.getElementById("foo").scrollHeight;

Grazie! Questo ha funzionato per me: var height = document.getElementById ("chatLog"). ScrollHeight - $ ('# chatLog'). Height (); $ ('# chatLog'). scrollTop (altezza);
Brian

6
E il supporto del browser? Tutte le principali versioni dei browser lo supportano? IE8 +?
SexyBeast

2
@Cupidvogel La pagina MDN collegata dice IE8 +
Dennis

316

I modi corretti in jQuery sono:

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

Spero che sia d'aiuto.


16
+1 per $ ('# test') [0] .scrollHeight, dato che il richiedente stava già utilizzando jQuery.
Jackson il

12
Questa dovrebbe essere la risposta accettata poiché risponde alla domanda.
invota il

Dovrebbe essere la risposta accettata. Si noti che il propmetodo richiede jquery versione 1.6 o superiore. +1 da me
Vayne

2
Nota che questo restituisce solo scrollHeight del "primo" elemento trovato e se qualche elemento è attualmente "nascosto" potresti ottenere uno zero qui anche se altri hanno uno scrollHeight positivo, FWIW :)
rogerdpack

@rogerdpack Buon punto, signore! Sebbene in questo esempio stia usando un ID invece di una classe come selettore, quindi dovrebbe essere a posto, ma comunque un buon punto.
dave4jr
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.