最近用到了textarea 才一两行的数据就出现滚动条,会很难看,发现一种方法,让textarea随着内容的多少自动去变化,找到如下代码:
//工具方法,自适应textarea
// 最小高度
var minRows = 1;
// 最大高度,超过则出现滚动条
var maxRows = 4;
function autoResize(t) {
if (t.scrollTop == 0) t.scrollTop = 1;
while (t.scrollTop == 0) {
if (t.rows > minRows)
t.rows--;
else
break;
t.scrollTop = 1;
if (t.rows < maxRows)
t.style.overflowY = "hidden";
if (t.scrollTop > 0) {
t.rows++;
break;
}
}
while (t.scrollTop > 0) {
if (t.rows < maxRows) {
t.rows++;
if (t.scrollTop == 0) t.scrollTop = 1;
}
else {
t.style.overflowY = "auto";
break;
}
}
}
<textarea rows="1" style="width:5%;background:transparent;border:1px solid;float:left;margin-left:0px;overflow-y:hidden;resize:none" onkeyup="autoResize(this)" ></textarea>
resize:none 不允许用户手动拖动textarea的大小,最好加上,若不加 ,不手动拖动,也不会有什么影响. 测试过已经成功