
正常的文本框(textarea)的高度是固定的,用户可以通过拖动来调整文本框的大小,但是在特定的情况下我们需要实现在输入内容后 ,文本框(textarea)高度能够根据输入的内容自动调整,这样首先能够显示所有文本的内容,也更加美观。下面我介绍一种如何用jQuery实现对textarea内容自适应高度功能
使用前
正常情况下如果内容超出本框(textarea)的尺寸会如下图显示:

使用后

关键代码与说明
<textarea autoheight="true" placeholder="留言内容"></textarea> <script> //定义textarea 自动高度方法 $.fn.autoHeight = function () { function autoHeight(elem) { //首先设置高度为0 elem.style.height = 0; elem.scrollTop = 0; //防抖动 //scrollHeight:元素整个的内容高度加上padding的高度不包含border elem.style.height = elem.scrollHeight + 'px'; } this.each(function () { //调用autoHeight autoHeight(this); //按键被释放时触发keyup事件 $(this).on('keyup', function () { //调用autoHeight() autoHeight(this); }); }); } //调用autoHeight() $('textarea[autoHeight]').autoHeight(); </script>