当前位置:  开发笔记 > 编程语言 > 正文

Textarea根据内容长度调整大小

如何解决《Textarea根据内容长度调整大小》经验,为你挑选了5个好方法。

我需要一个textarea,我在框中键入我的文本,它根据需要增长,以避免处理滚动条,它需要在删除文本后收缩!我不想沿着mootools或jquery路线走,因为我有一个轻量级的形式.



1> Alsciende..:

您可以通过设置为1px然后阅读scrollHeight属性来检查内容的高度:

function textAreaAdjust(o) {
  o.style.height = "1px";
  o.style.height = (25+o.scrollHeight)+"px";
}


2> billyswong..:

您也可以尝试contenteditable将属性转换为普通pdiv.不是真的,textarea但它会在没有脚本的情况下自动调整大小.




Hello World


但是,这会在粘贴时添加所有HTML垃圾.

3> Ravimallya..:

已经实现了一个jquery解决方案,源代码可以在github上找到:https://github.com/jackmoore/autosize.



4> Hazem_M..:

使用此功能:

function adjustHeight(el){
    el.style.height = (el.scrollHeight > el.clientHeight) ? (el.scrollHeight)+"px" : "60px";
}

使用这个html:


最后使用这个css:

textarea {
min-height: 60px;
overflow-y: auto;
word-wrap:break-word
}

解决方案只是让滚动条显示检测到需要调整高度,并且只要滚动条出现在文本区域中,它就会调整高度,以便再次隐藏滚动条.



5> 小智..:

无论出于何种原因,Alciende的回答在Safari中对我来说并不是很有效,但经过一些小修改之后做了一遍:

function textAreaAdjust(o) {
    o.style.height = "1px";
    setTimeout(function() {
        o.style.height = (o.scrollHeight)+"px";
    }, 1);
}

希望这有助于某人

推荐阅读
臭小子
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有