作家
登录

Javascript 文本框textarea高度随内容自适应增长收缩

作者: 来源:www.28hudong.com 2013-03-30 00:49:12 阅读 我要评论

直接上代码: 方案一: 枫芸志 » 文本框textarea高度自适应增长/伸缩 textarea { height:100px; width: 300px; } 晴枫制作 http://jb51.net [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行] 方案一在各浏览器中,文本框随内容自适应增长都没有问题;但在删除内容时收缩方面表现有所差异,IE、Opera表现正常,Firefox、Chrome、Safari不会收缩。原因是文本框内容高度小于文本框高度时scrollHeight值等于文本框高度,而不是文本框内容高度。 方案二: 复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <HTML> <HEAD> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <TITLE>枫芸志 » 文本框textarea高度自适应增长/伸缩</TITLE> </HEAD> <BODY> <textarea id="txtContent" rows="5" cols="50" onkeyup="ResizeTextarea()" style="overflow-y:hidden;">Textarea高度随内容自适应地增长,无滚动条 晴枫制作 http://jb51.net</textarea> <script type="text/javascript"> // 最小高度 var minRows = 5; // 最大高度,超过则出现滚动条 var maxRows = 12; function ResizeTextarea(){ var t = document.getElementById('txtContent'); 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; } } } </script> </BODY> </HTML> 方案二在各浏览器中表现相同,皆可使文本框随内容自适应增长和收缩。但有个缺憾是在文本框高度增长的时候,文本框显示会有一个跳动。 另以上两个方案对于通过文本框右键菜单选择剪切、粘贴、删除等命令操作文本内容的情形都无效。可以说暂未找到完美的解决方案,留待以后再来研究。哪位同学如果有完美的方案的话敬请赐教! 其他方案: A different approach to elastic textareas 方案二即参考此文后实现 Build an Elastic Textarea with Ext JS Smart TextArea: scrollHeight in IE, Firefox, Opera and Safari 原文链接:http://witmax.cn/javascript-textarea-auto-grow.html

  推荐阅读

  js 判断脚本加载完毕的代码

复制代码 代码如下: if(this.isIE) { js.onreadystatechange=function(){if(js.readyState=="loaded" || js.readyState=="complete") callback();} }else{js.onload=function(){callback();}} js.onerror=function>>>详细阅读


本文标题:Javascript 文本框textarea高度随内容自适应增长收缩

地址:http://www.17bianji.com/kaifa2/JS/24411.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)