3

有很多关于自动扩展文本区域的主题。仍然没有找到一个我会称之为“完美”的人。我需要的一件事似乎无法解决,一旦用户开始打字,它们就会开始增长。我一直在尝试自己解决这个问题,但没有运气。我不希望文本区域在到达行尾或按下 Enter 之后展开。

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

谢谢!

更新答案:

对于我的情况,我不仅希望文本区域仅在下一行/输入时才扩展。还要缩小没有文字。一个快速的解决方案,除了提供的答案之外,如果 textarea 是空的,我也可以运行 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 回答