Il y avait un autre sujet à ce sujet que j'ai essayé. Mais il y a un problème : le textarea
ne rétrécit pas si vous supprimez le contenu. Je n'arrive pas à trouver un moyen de le réduire à la bonne taille. clientHeight
revient avec la taille complète de l'image textarea
et non son contenu.
Le code de cette page est ci-dessous :
function FitToContent(id, maxHeight)
{
var text = id && id.style ? id : document.getElementById(id);
if ( !text )
return;
var adjustedHeight = text.clientHeight;
if ( !maxHeight || maxHeight > adjustedHeight )
{
adjustedHeight = Math.max(text.scrollHeight, adjustedHeight);
if ( maxHeight )
adjustedHeight = Math.min(maxHeight, adjustedHeight);
if ( adjustedHeight > text.clientHeight )
text.style.height = adjustedHeight + "px";
}
}
window.onload = function() {
document.getElementById("ta").onkeyup = function() {
FitToContent( this, 500 )
};
}
0 votes
La réponse acceptée pour le fil que vous avez lié fonctionne pour moi. L'ajout de sauts de ligne agrandit la zone de texte et leur suppression la rétrécit. Quel navigateur utilisez-vous ?
3 votes
Ma fonction fait une erreur. Il est nécessaire de taper une nouvelle ligne à la fin de la ligne. Voici une meilleure solution. james.padolsey.com/javascript/jquery-plugin-autoresize
0 votes
Vous pouvez essayer mon plugin pour cela : github.com/AndrewDryga/jQuery.Textarea.Autoresize
0 votes
Duplication possible de Autorisation de la zone de texte à l'aide d'un prototype
0 votes
J'ai créé un paquet pour cela si vous utilisez react : npmjs.com/package/react-fluid-textarea
0 votes
Trier et répondre en douceur ici : stackoverflow.com/a/995374/5114465
function textAreaAdjust(o) { o.style.height = "1px"; o.style.height = (25+o.scrollHeight)+"px"; }
<textarea onkeyup="textAreaAdjust(this)" style="overflow:hidden"></textarea>
0 votes
En utilisant uniquement les CSS (et un élément d'habillage) : css-tricks.com/the-cleanest-trick-for-autogrowing-textareas