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.