84669 人学习
152542 人学习
20005 人学习
5487 人学习
7821 人学习
359900 人学习
3350 人学习
180660 人学习
48569 人学习
18603 人学习
40936 人学习
1549 人学习
1183 人学习
32909 人学习
要在textarea中输入内容,默认为一行,当输入的内容过多时自动换行,并且高度增加?
1, 用shadow
<p style="height:0; overflow:hidden;"> <p class="shadow"></p> </p> <textarea style="overflow:hidden;"></textarea> <script> textarea.addEventListener('input', function(e) { shadow.innerHTML = this.value.replace(/\</g, '<').replace(/\>/g, '>'); this.height = shadow.clientHeight + 'px'; }); </script>
2, 用 contenteditable 属性
<p contenteditable="true">这里的高度会随内容自动扩展</p>
3, 如果用
textarea.style.height = textarea.scrollHeight + 'px';
这种形式也可以调整高度, 但换行的时候会有滚动条一闪而逝, 而且高度只会增加没法减少, 是体验最差的写法.
给textarea一个oninput事件
<textarea id="text"></textarea> document.getElementById('text').style.height = document.getElementById('text').scrollHeight + 'px'
类似这样的
http://stackoverflow.com/ques...
textarea的总高度(用jQ的element.height(),如果是原生js,请查看手册的BIF)/ 你定义的行高
1, 用shadow
2, 用 contenteditable 属性
3, 如果用
这种形式也可以调整高度, 但换行的时候会有滚动条一闪而逝, 而且高度只会增加没法减少, 是体验最差的写法.
给textarea一个oninput事件
类似这样的
http://stackoverflow.com/ques...
textarea的总高度(用jQ的element.height(),如果是原生js,请查看手册的BIF)/ 你定义的行高