【Javascript】文本框textarea高度随内容自适应增长收缩
- A different approach to elastic textareas 方案二即参考此文后实现
- Build an Elastic Textarea with Ext JS
- Smart TextArea: scrollHeight in IE, Firefox, Opera and Safari
之前一段时间项目中用到的一个功能,用Javascript控制文本框textarea高度随内容自适应增长收缩,今天花了点时间换了种实现方法,总结一下。
直接上代码:
方案一:
[runcode height="280"]
[/runcode]
方案一在各浏览器中,文本框随内容自适应增长都没有问题;但在删除内容时收缩方面表现有所差异,IE、Opera表现正常,Firefox、Chrome、Safari不会收缩。原因是文本框内容高度小于文本框高度时scrollHeight值等于文本框高度,而不是文本框内容高度。
方案二:
[runcode height="280"]
[/runcode]
方案二在各浏览器中表现相同,皆可使文本框随内容自适应增长和收缩。但有个缺憾是在文本框高度增长的时候,文本框显示会有一个跳动。
另以上两个方案对于通过文本框右键菜单选择剪切、粘贴、删除等命令操作文本内容的情形都无效。可以说暂未找到完美的解决方案,留待以后再来研究。哪位同学如果有完美的方案的话敬请赐教!
其他方案:
标签: Javascript
第二个,给textarea加个底部内边距,文本框显示就不会跳动了
你好,我改进了那一段代码,根据字符的内容大小和文本宽度来设定文本框高度增长或减少。function ResizeTextarea(){ var t = document.getElementById(‘everyday’);
第一种方法,可以判断一下浏览器
第二种方法,使用css
<textarea style=”width:100%;overflow-y:visible”>这样高度即可自动适应</textarea>
在日志中加入代码是用的《code》(防wp转义)标签还是用的插件?就是本文中两大段代码这样。