jQuery / JS obtient la hauteur de la barre de défilement d’une zone de texte

J’ai un textarea avec une hauteur fixe. Lorsque l’utilisateur tape du texte dans la zone de texte, une barre de défilement apparaît après que l’utilisateur a saisi du texte.

Comment obtenir la hauteur de la barre de défilement à l’aide de jQuery ou de JavaScript? Je cherche cela depuis des heures, mais je n’ai rien trouvé. Je ne peux pas simplement insérer un div et obtenir la hauteur de la barre de défilement via le décalage de div, car une zone de texte n’est pas autorisée à avoir des éléments enfants.

S’il vous plaît ne me donnez pas un lien vers un plug-in jQuery qui fait le travail. Je veux apprendre quelque chose.

textarea.scrollHeight 

retourne un entier (pixels)

 $.each($("textarea"), function () { var scrollHeight = parseInt(this.scrollHeight); if ($("this").val() != "" && isNaN(scrollHeight) == false && scrollHeight > 0 && scrollHeight > $(this).height()) { console.log($(this).attr("id")); $(this).height(scrollHeight); } }); 

Veuillez noter que vous devez exclure le remplissage supérieur et inférieur de la zone de texte lors de la comparaison de scrollHeight.

Exemple

 var scrollHeight = $("#textarea_id")[0].scrollHeight; var padding = 14; //upperpadding 7 and lower padding 7. if($("#textarea_id")[0].height() < (scrollHeight - padding)) { $("#textarea_id")[0].height(scrollHeight - padding); }