textarea高度自动变化

最近用到了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的大小,最好加上,若不加 ,不手动拖动,也不会有什么影响. 测试过已经成功

posted on 2015-01-06 10:48  狂奔的冬瓜  阅读(610)  评论(0)    收藏  举报