globe: Artikel: Größe eines Textfeldes an dessen Inhalt anpassen

Beitrag lesen

n'abend,

Ohne mir anzuschauen, was du da gebaut hast, wollte ich fragen, ob du dir bewusst bist, dass es schon ein entsprechendes jQuery-Plugin gibt:
http://plugins.jquery.com/project/autogrow

das war mir nicht bewusst. Ich hatte allerdings auch nicht nach einer fertigen Lösung gesucht. Obwohl ich jQuery sehr zu schätzen und lieben gelernt habe, sind mir 99.99% der Plugins suspekt. Ich schaue mir - wenn ich gerade mal nichts zu tun habe - öfter mal neue Plugins an. Meist jedoch weniger um sie zu nutzen, mehr um eigene Ideen anzureichern. jQuery: ja, Fremd-Plugins: (mit Ausnahmen) eher nicht so.

Ich weiß (noch) nicht, wie gut das umgesetzt ist, ob deines nun besser ist, aber es lohnt sich sicher, einen Blick darauf zu werfen.

=== Ähnlichkeiten: ===

* Sowohl autoHeight() als auch autogrow() kopieren den Inhalt der <textarea> in ein zweites (verstecktes) Element, von welchem dann die (computedStyle) Höhe ausgelesen werden können.

=== Unterschiede: ===

* Während mein Ansatz durch (keyup-)Events ausgelöst wird, setzt autogrow() auf einen Intervall.
 * autoHeight() kann neben minimaler und maximaler Höhe auch noch die Anzahl freier Zeilen am Ende als Parameter entgegen nehmen.
 * autogrow() beachtet padding, autoHeight() nicht.
 * autogrow() berücksichtigt overflow-x und overflow-y (um das Aufflackern der Scrollbar zu verhindern)
 * autogrow() escaped HTML-Steuerzeichen
 * autogrow() ignoriert eine ganze Reihe von font-relevanten Styles
 * autogrow() arbeitet mit jQuery.animate()
 * autogrow() nutzt die Styles min-height und max-height, statt diese als Parameter zu übergeben

=== Schlussfolgerungen ===

* <br> vs. <BR> (IE workaround) [bug]
 * <,& und > durch Entitäten ersetzen (ich depp™) [bug]
 * overflow-x/y entsprechend setzen [optimierung]
 * nochmal mit jQuery.animate() experimentieren [optimierung]
 * prüfen welche Auswirkungen das Ignorieren von padding mit sich bringt [possible bug]
 * Intervall gegenüber keyup-Event prüfen [optimierung]
 * min/max Höhe möglicherweise ebenfalls mittels CSS, statt JS spezifizieren [optimierung]

weiterhin schönen abend...

--
#selfhtml hat ein Forum?
sh:( fo:# ch:# rl:| br:> n4:& ie:{ mo:} va:) de:] zu:} fl:( ss:? ls:[ js:|