2012-12-27 5 views
8

C'è un modo per determinare la posizione di scorrimento massima per ogni browser, senza effettivamente scorrere fino alla fine e leggere questa posizione?Come posso determinare la posizione di scorrimento massima in diversi browser con altezza e/o riempimento diversi?

Preso un contenitore div con altezza fissa e troppopieno. Diversi elementi div nel contenitore la cui somma di altezze è maggiore dell'altezza del contenitore.

C'è una posizione di scorrimento massima (y) che ho pensato è semplicemente l'altezza del contenitore meno l'altezza totale degli elementi. Questo sembra essere vero fino a quando il line-height del contenitore è più grande del height degli articoli. Se questo è il caso, sembra che ogni browser determini la posizione di scorrimento massima in modo diverso.

Con il padding è anche peggio, alcuni browser aggiungono il padding superiore, alcuni browser aggiungono sia il pad superiore che quello inferiore.

Vedere questo fiddle per esempio. Gioca con l'altezza della linea del contenitore e l'altezza del piatto.

risposta

6

ho solo la possibilità di testare in una manciata di browser, ma penso che quello che stai cercando è:

elm.scrollHeight - elm.clientHeight 

mostrato in una versione aggiornata jsFiddle.

+0

Attenzione: 'elm.clientHeight' non fa parte di alcuna specifica W3C. Vedi [riferimento MDN] (https://developer.mozilla.org/en-US/docs/Web/API/element.clientHeight?redirectlocale=en-US&redirectslug=DOM%2Felement.clientHeight). – Simone

+0

@simone Grazie per l'avviso. – tiffon

+0

Ho scoperto Firefox a partire dal 28 supporta 'elm.scrollTopMax' che restituisce lo stesso numero di' elm.scrollHeight - elm.clientHeight' anche se non è documentato da nessun'altra parte su MDN e non è supportato in altri browser. –

Problemi correlati