Javascript jQuery文本区域自动增长,在行尾/输入之前不要增长

Javascript jQuery文本区域自动增长,在行尾/输入之前不要增长,javascript,jquery,textarea,Javascript,Jquery,Textarea,在自动扩展文本区域上有很多线程。还没有找到一个我称之为“完美”的。我需要的一件事似乎无法解决,当用户开始输入时,它们就开始增长。我一直想自己解决这个问题,但运气不好。我不希望文本区域在到达行尾或按enter键之前展开 谢谢 最新答复: 对于我的情况,我不仅希望textarea只在点击下一行/回车时才扩展。而且没有文字也要收缩。一个快速的解决方案,除了提供的答案外,我还加入了一个如果文本区域为空,那么运行css高度线。不会在擦除时收缩,但至少在擦除所有文本后会重置高度 if ($

在自动扩展文本区域上有很多线程。还没有找到一个我称之为“完美”的。我需要的一件事似乎无法解决,当用户开始输入时,它们就开始增长。我一直想自己解决这个问题,但运气不好。我不希望文本区域在到达行尾或按enter键之前展开

谢谢

最新答复:

对于我的情况,我不仅希望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));
        }

添加以下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));
}
if(this.scrollHeight>$this.height()){
$(this.css('height',Math.max(shadow.height()+20,minHeight));
}else if($this.height()

可能有效,或者可能需要更多的按摩,以便按照评论中的要求缩小尺寸。

太棒了,谢谢您的回答!这正是我想要的,它打破了以前的工作,虽然。根据您提供的声明,删除文本不再像以前那样缩小框:我认为总体而言,从用户体验的角度来看,这对我当前的布局来说还是更好的,但是如果您知道一种方法使这两种方式都起作用,请让我知道,非常感谢!