HTML让文本框textarea自动适应内容的高度

2016-05-19 10:11:47 HTML让文本框textarea自动适应内容的高度

HTML让文本框textarea自动适应内容的高度方法如下:

textarea标签内使用JS与CSS实现方法一:

  1. <textarea rows=1 cols=40 style='overflow:scroll;overflow-y:hidden;;overflow-x:hidden'  
  2. onfocus="window.activeobj=this;this.clock=setInterval(function()
    {activeobj.style.height=activeobj.scrollHeight+'px';},200);"
     onblur="clearInterval(this.clock);"></textarea> 

textarea自适应内容高度JS+CSS方法二:

  1. <script> 
  2. var agt = navigator.userAgent.toLowerCase(); 
  3. var is_op = (agt.indexOf("opera") != -1); 
  4. var is_ie = (agt.indexOf("msie") != -1) && document.all && !is_op; 
  5. function ResizeTextarea(a,row){ 
  6. if(!a){return} 
  7. if(!row) 
  8. row=5
  9. var b=a.value.split("\n"); 
  10. var c=is_ie?1:0; 
  11. c+=b.length; 
  12. var d=a.cols; 
  13. if(d<=20){d=40
  14. for(var e=0;e<b.length;e++){ 
  15. if(b[e].length>=d){ 
  16. c+=Math.ceil(b[e].length/d) 
  17. c=Math.max(c,row); 
  18. if(c!=a.rows){ 
  19. a.rows=c
  20. </script> 
  21. <textarea style="overflow: hidden; font-family: Verdana,Arial; font-style: normal; 
    font-size: 13px; line-height: normal; "
     rows="4" cols="30" onfocus="javascript:ResizeTextarea(this,4);" 
    onclick="javascript:ResizeTextarea(this,4);" 
    onkeyup="javascript:ResizeTextarea(this,4);"></textarea> 
  22.  
  23. <!DOCTYPE html> 
  24. <html xmlns="http://www.w3.org/1999/xhtml"> 
  25. <head> 
  26. </head> 
  27. <body> 
  28. <textarea rows=1 cols=40 style='overflow:scroll;overflow-y:hidden;;overflow-x:hidden'  
  29. onfocus="window.activeobj=this;this.clock=setInterval(function()
    {activeobj.style.height=activeobj.scrollHeight+'px';},200);"
     
    onblur="clearInterval(this.clock);"></textarea><br/><br/> 
  30. <script> 
  31. var agt = navigator.userAgent.toLowerCase(); 
  32. var is_op = (agt.indexOf("opera") != -1); 
  33. var is_ie = (agt.indexOf("msie") != -1) && document.all && !is_op; 
  34. function ResizeTextarea(a,row){ 
  35. if(!a){return} 
  36. if(!row) 
  37. row=5
  38. var b=a.value.split("\n"); 
  39. var c=is_ie?1:0; 
  40. c+=b.length; 
  41. var d=a.cols; 
  42. if(d<=20){d=40
  43. for(var e=0;e<b.length;e++){ 
  44. if(b[e].length>=d){ 
  45. c+=Math.ceil(b[e].length/d) 
  46. c=Math.max(c,row); 
  47. if(c!=a.rows){ 
  48. a.rows=c
  49. </script> 
  50. <textarea style="overflow: hidden; font-family: Verdana,Arial; font-style: normal; 
    font-size: 13px; line-height: normal; "
     rows="4" cols="30" 
    onfocus="javascript:ResizeTextarea(this,4);" onclick="javascript:ResizeTextarea(this,4);" 
    onkeyup="javascript:ResizeTextarea(this,4);"></textarea> 
  51. </body> 
  52. </html> 

 

更新