最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

Javascript文本框textarea高度随内容自适应增长收缩_表单特效

来源:动视网 责编:小采 时间:2020-11-27 20:59:44
文档

Javascript文本框textarea高度随内容自适应增长收缩_表单特效

Javascript文本框textarea高度随内容自适应增长收缩_表单特效:直接上代码: 方案一: 枫芸志 » 文本框textarea高度自适应增长/伸缩 textarea { height:100px; width: 300px; } 晴枫制作 http://jb51.net // 最小高度 var minHeight = 100; // 最大高度,超过则出现滚动条
推荐度:
导读Javascript文本框textarea高度随内容自适应增长收缩_表单特效:直接上代码: 方案一: 枫芸志 » 文本框textarea高度自适应增长/伸缩 textarea { height:100px; width: 300px; } 晴枫制作 http://jb51.net // 最小高度 var minHeight = 100; // 最大高度,超过则出现滚动条


直接上代码:
方案一:

[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]
方案一在各浏览器中,文本框随内容自适应增长都没有问题;但在删除内容时收缩方面表现有所差异,IE、Opera表现正常,Firefox、Chrome、Safari不会收缩。原因是文本框内容高度小于文本框高度时scrollHeight值等于文本框高度,而不是文本框内容高度。
方案二:
代码如下:





枫芸志 » 文本框textarea高度自适应增长/伸缩




// 最小高度
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;
}
}
}




方案二在各浏览器中表现相同,皆可使文本框随内容自适应增长和收缩。但有个缺憾是在文本框高度增长的时候,文本框显示会有一个跳动。
另以上两个方案对于通过文本框右键菜单选择剪切、粘贴、删除等命令操作文本内容的情形都无效。可以说暂未找到完美的解决方案,留待以后再来研究。哪位同学如果有完美的方案的话敬请赐教!


其他方案:

  1. A different approach to elastic textareas 方案二即参考此文后实现
  2. Build an Elastic Textarea with Ext JS
  3. Smart TextArea: scrollHeight in IE, Firefox, Opera and Safari

原文链接:http://witmax.cn/javascript-textarea-auto-grow.html

文档

Javascript文本框textarea高度随内容自适应增长收缩_表单特效

Javascript文本框textarea高度随内容自适应增长收缩_表单特效:直接上代码: 方案一: 枫芸志 » 文本框textarea高度自适应增长/伸缩 textarea { height:100px; width: 300px; } 晴枫制作 http://jb51.net // 最小高度 var minHeight = 100; // 最大高度,超过则出现滚动条
推荐度:
标签: 内容 文本框 特效
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top