3

テキストエリアの自動拡張については、多くのスレッドがありました。「完璧」と呼べるものはまだ見つかっていません。私が修正できないように見える必要があることの1つは、ユーザーが入力を開始するとすぐに成長し始めることです。私は運が悪いので、これを自分で修正しようとしています。行末に到達するかエンターが押されるまで、テキストエリアを拡大したくありません。

http://jsfiddle.net/mstefanko/Jrpqg/65/

ありがとう!

更新された回答:

私の状況では、テキストエリアが次の行/入力に達したときにのみ拡大するだけではありませんでした。しかし、テキストなしで縮小することもできます。提供された回答に加えて、簡単な解決策として、テキストエリアが空の場合はcssの高さの行も実行しました。消去しても縮小しませんが、少なくともすべてのテキストを消去すると高さがリセットされます。

        if ($.trim($(this).val()) == "") {
            $(this).css('height', Math.max(shadow.height() + 20, minHeight));
        }
        if(this.scrollHeight  > $this.height()) {
            $(this).css('height', Math.max(shadow.height() + 20, minHeight));
        }
4

1 に答える 1

3

次の if ステートメントを追加します。

if(this.scrollHeight  > $this.height()) {
    $(this).css('height', Math.max(shadow.height() + 20, minHeight));
} else if($this.height() < shadow.height() + 20) {
    $(this).css('height', Math.max(shadow.height() + 20, minHeight));
}

コメントで要求されているように、サイズを小さくするために機能するか、もう少しマッサージが必要な場合があります.

于 2012-05-23T20:55:54.030 に答える