国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

Javascript 文本框textarea高度隨內(nèi)容自適應(yīng)增長收縮

2019-11-20 23:45:40
字體:
供稿:網(wǎng)友
直接上代碼:
方案一:

[Ctrl+A 全選 注:如需引入外部Js需刷新才能執(zhí)行]

方案一在各瀏覽器中,文本框隨內(nèi)容自適應(yīng)增長都沒有問題;但在刪除內(nèi)容時收縮方面表現(xiàn)有所差異,IE、Opera表現(xiàn)正常,F(xiàn)irefox、Chrome、Safari不會收縮。原因是文本框內(nèi)容高度小于文本框高度時scrollHeight值等于文本框高度,而不是文本框內(nèi)容高度。
方案二:
復(fù)制代碼 代碼如下:

<!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高度自適應(yīng)增長/伸縮</TITLE>
</HEAD>
<BODY>
<textarea id="txtContent" rows="5" cols="50" onkeyup="ResizeTextarea()" style="overflow-y:hidden;">Textarea高度隨內(nèi)容自適應(yīng)地增長,無滾動條
晴楓制作
http://VeVB.COm</textarea>
<script type="text/javascript">
// 最小高度
var minRows = 5;
// 最大高度,超過則出現(xiàn)滾動條
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>

方案二在各瀏覽器中表現(xiàn)相同,皆可使文本框隨內(nèi)容自適應(yīng)增長和收縮。但有個缺憾是在文本框高度增長的時候,文本框顯示會有一個跳動。
另以上兩個方案對于通過文本框右鍵菜單選擇剪切、粘貼、刪除等命令操作文本內(nèi)容的情形都無效。可以說暫未找到完美的解決方案,留待以后再來研究。哪位同學(xué)如果有完美的方案的話敬請賜教! 


其他方案:

  1. A different approach to elastic textareas 方案二即參考此文后實現(xiàn)
  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
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 湄潭县| 舞钢市| 贵定县| 济阳县| 靖远县| 科技| 乌拉特后旗| 吉林省| 封开县| 上思县| 古蔺县| 葵青区| 宜川县| 大关县| 香港 | 得荣县| 东兰县| 溆浦县| 青岛市| 鸡西市| 乌苏市| 宣汉县| 如东县| 喜德县| 朔州市| 兴文县| 根河市| 济阳县| 许昌县| 得荣县| 华宁县| 宜兰市| 琼中| 上蔡县| 平凉市| 乐业县| 涿州市| 郎溪县| 民丰县| 景宁| 民丰县|