web-dev-qa-db-fra.com

Comment obtenir le vrai .height () d'un débordement: caché ou débordement: scroll div?

J'ai une question sur la façon d'obtenir une hauteur de div. Je suis au courant de .height() et innerHeight(), mais aucun d'eux ne fait le travail pour moi dans ce cas. Le fait est que dans ce cas, j'ai un div qui est débordé de largeur: un débordement: scroll et le div a une hauteur fixe.

Si j'utilise .height() ou innerHeight(), ils me donnent tous les deux la hauteur de la zone visible, mais si je veux que le débordement soit pris en compte, comment procéder?

148
emilolsson

Utilisez la propriété .scrollHeight du noeud DOM: $('#your_div')[0].scrollHeight

278
reko_t

Pour plus d'informations sur .scrollHeight propriété se référer à la docs :

L'attribut Element.scrollHeight en lecture seule est une mesure de la hauteur du contenu d'un élément, y compris du contenu non visible à l'écran en raison d'un débordement. La valeur scrollHeight est égale à la valeur clientHeight minimale requise par l'élément pour que tout le contenu puisse être contenu dans le point de vue sans utiliser de barre de défilement verticale. Il inclut l'élément padding mais pas sa marge.

7
Ajeesh Vijay

Une autre possibilité serait de placer le code HTML dans un non-débordement: élément caché placé "hors" de l'écran, comme une position absolue inférieure et inférieure puis 5000px, puis lisez la hauteur de cet élément. C'est moche, mais ça marche bien.

3
user3018731