Box="0 0 22 22" version="1.1">
Box="0 0 24 20" version="1.1">
随着文本输入的增加,我的textarea会随之增加.它将达到一定高度(直到4行)然后滚动出现.删除文本时,我无法降低高度.
此外,我默认情况下无法设置单行文本.
下面是我想要实现的图像
最佳答案
要以最简单的方式实现它,您应该做一些小的改动
>起飞位置:绝对;来自.inputcls和.inputcls textarea.通过这样做,当textarea更改时,它们的包装器将自动调整,您不必通过代码执行此操作.
>不使用像素设置textarea最小高度,而是使用rows属性设置所需的最小行数.
>文本更改时将高度设置为自动.它会将textarea高度调整到它应具有的原始高度.然后你可以得到它的scrollHeight并再次设置它.所以实际上你的功能应该只是:
function expand(e,element) {
element.style.height = "auto";
if (element.scrollHeight <= 84) {
element.style.height = element.scrollHeight + "px";
element.style.overflowY = "hidden";
} else {
element.style.height = "84px";
element.style.overflowY = "scroll";
}
}
BTW
你写了:
Also,I am unable to set single line text by default.
使用此解决方案,只需将rows =“2”更改为rows =“1”
BTW2
你不需要同时使用onkeydown和onkeyup.仅使用onkeyup会更好.