首頁 web前端 js教程 文本框根据输入内容自适应高度的代码_表单特效

文本框根据输入内容自适应高度的代码_表单特效

May 16, 2016 pm 06:00 PM
文字方塊

其实现代浏览器大多都支持文本框尺寸调节功能,绝大多数情况下却没有自动适应来得爽快,在网络上发现一方法比较简单的实现文本框高度自适应,于是封装了这个函数,准备以后应用到项目中。
源代码:
23:03文章更新:
感谢alucelx同学再次给力的帮助,大大简化了方法,更新代码为0.2版本,同时解决了兼容Opera浏览器,至此全兼容IE6+与现代浏览器!
在线演示: http://demo.jb51.net/js/2011/autoArea/index.htm
autoTextarea.js

复制代码 代码如下:

/**
* 文本框根据输入内容自适应高度
* @author tang bin
* @version 0.3
* @see http://www.planeart.cn/?p=1489
* @param {HTMLElement} 输入框元素
* @param {Number} 设置光标与输入框保持的距离(默认20)
* @param {Number} 设置最大高度(可选)
*/
var autoTextarea = function (elem, extra, maxHeight) {
extra = extra || 20;
var isFirefox = !!document.getBoxObjectFor || 'mozInnerScreenX' in window,
isOpera = !!window.opera && !!window.opera.toString().indexOf('Opera'),
addEvent = function (type, callback) {
elem.addEventListener ?
elem.addEventListener(type, callback, false) :
elem.attachEvent('on' + type, callback);
},
getStyle = elem.currentStyle ? function (name) {
var val = elem.currentStyle[name];
if (name === 'height' && val.search(/px/i) !== 1) {
var rect = elem.getBoundingClientRect();
return rect.bottom - rect.top -
parseFloat(getStyle('paddingTop')) -
parseFloat(getStyle('paddingBottom')) + 'px';
};
return val;
} : function (name) {
return getComputedStyle(elem, null)[name];
},
minHeight = parseFloat(getStyle('height'));
elem.style.maxHeight = elem.style.resize = 'none';
var change = function () {
var scrollTop, height,
padding = 0,
style = elem.style;
if (elem._length === elem.value.length) return;
elem._length = elem.value.length;
if (!isFirefox && !isOpera) {
padding = parseInt(getStyle('paddingTop')) + parseInt(getStyle('paddingBottom'));
};
scrollTop = document.body.scrollTop || document.documentElement.scrollTop;
elem.style.height = minHeight + 'px';
if (elem.scrollHeight > minHeight) {
if (maxHeight && elem.scrollHeight > maxHeight) {
height = maxHeight - padding;
style.overflowY = 'auto';
} else {
height = elem.scrollHeight - padding;
style.overflowY = 'hidden';
};
style.height = height + extra + 'px';
scrollTop += parseInt(style.height) - elem.currHeight;
document.body.scrollTop = scrollTop;
document.documentElement.scrollTop = scrollTop;
elem.currHeight = parseInt(style.height);
};
};
addEvent('propertychange', change);
addEvent('input', change);
addEvent('focus', change);
change();
};

测试代码:




文本框根据输入内容自适应高度





<script> <BR>var text = document.getElementById("textarea"), <BR>tip = '想写点什么..'; <BR>autoTextarea(text);// 调用 <BR>text.value = tip; <BR>text.onfocus = function () { <BR>if (text.value === tip) text.value = ''; <BR>}; <BR>text.onblur = function () { <BR>if (text.value === '') text.value = tip; <BR>}; <BR></script>

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1664
14
CakePHP 教程
1422
52
Laravel 教程
1316
25
PHP教程
1267
29
C# 教程
1239
24
OneNote如何設定圖片為背景 OneNote如何設定圖片為背景 May 14, 2023 am 11:16 AM

Onenote是Microsoft提供的最好的筆記工具之一。結合Outlook和MSTeams,Onenote可以成為提高工作和個人創意工作效率的強大組合。我們必須以不同的格式做筆記,這可能不僅僅是把事情寫下來。有時我們需要從不同來源複製圖像並在日常工作中進行一些編輯。如果知道如何應用更改,則貼上在Onenote上的圖像可以發揮很大作用。您在使用Onenote時是否遇到過貼在Onenote上的圖像無法讓您輕鬆工作的問題?本文將著重於在Onenote上有效地使用圖像。我們可

如何隱藏文字直到在 Powerpoint 中單擊 如何隱藏文字直到在 Powerpoint 中單擊 Apr 14, 2023 pm 04:40 PM

如何在 PowerPoint 中的任何點擊之前隱藏文本如果您希望在單擊 PowerPoint 幻燈片上的任意位置時顯示文本,那麼設置起來既快速又容易。若要在 PowerPoint 中按一下任何按鈕之前隱藏文字:開啟您的 PowerPoint 文檔,然後按一下「插入 」功能表。點選新幻燈片。選擇空白或其他預設之一。仍然在插入選單中,按一下文字方塊。在投影片上拖出一個文字方塊。點擊文字方塊並輸入您

如何在 Word 中製作行事曆 如何在 Word 中製作行事曆 Apr 25, 2023 pm 02:34 PM

如何使用表格在Word中製作日曆如果您想建立一個完全符合您的規範的日曆,您可以使用Word中的表格從頭開始做所有事情。這使您可以為日曆設計所需的確切佈局。在Word中使用表格建立行事曆:開啟一個新的Word文件。按Enter幾次,將遊標向下移動到頁面。點選插入 選單。在功能區中,按一下表格圖示。點擊並按住左上角的方塊並拖曳出一個7×6的表格。在第一行填寫星期幾。使用另一個日曆作為參考填寫月份中的日期。反白顯示當前月份以外的任何日期。在主選單中,點擊文字顏色圖示並選擇灰色。對當前月份以

html文字方塊類型有哪些 html文字方塊類型有哪些 Oct 12, 2023 pm 05:38 PM

html文字方塊類型有單行文字方塊、密碼文字方塊、數字文字方塊、日期文字方塊、時間文字方塊、檔案上傳文字方塊、多行文字方塊等等。詳細介紹:1、單行文本框是最常見的文本框類型,用於接受單行文本輸入,用戶可以在文本框中輸入任意文本,例如用戶名、密碼、電子郵件地址等;2、密碼文本框用於接受密碼輸入,使用者在輸入密碼時,文字方塊中的內容會被隱藏,以保護使用者的隱私;3、數位文字方塊等等。

如何在HTML文字方塊中新增換行符號? 如何在HTML文字方塊中新增換行符號? Sep 04, 2023 am 11:05 AM

若要為HTML文字區域新增換行符,我們可以使用HTML換行符號標籤在任意位置插入換行符。或者,我們也可以使用CSS屬性「white-space:pre-wrap」自動為文字新增換行符。當在文字區域中顯示預先格式化的文字時,這特別有用。因此,我們來討論一下添加換行符的方法。方法在HTML中建立一個文字區域並為其指派一個id。建立一個按鈕,按一下該按鈕將使用換行符號分割文字區域的文字。現在建立將文字分成換行符的函數。此函數的程式碼為-functionreplacePeriodsWithLineBreaks()

文字框邊框怎麼設定透明 文字框邊框怎麼設定透明 Jul 28, 2023 am 10:05 AM

文字框邊框設定透明方法:1、開啟文檔,選取已插入的文字框,滑鼠右鍵選擇「設定物件格式」;2、在右側彈出框,選擇「形狀選項」—「填滿與線條」—「透明度」;3、依需求調整透明度即可。

文字方塊邊框怎麼設定顏色 文字方塊邊框怎麼設定顏色 Jul 28, 2023 am 10:08 AM

設定文字方塊邊框顏色的方法:1、選取要新增邊框的文字或段落;2、在「開始」標籤的「段落」或「字型」群組中,按一下「邊框」按鈕;3、從下拉式選單中選擇邊框樣式;4、點選「邊框顏色」按鈕,在彈出的選單中選擇您想要的顏色;5、點選「確定」按鈕以套用邊框樣式和顏色。

如何編寫HTML滾動條文字方塊程式碼 如何編寫HTML滾動條文字方塊程式碼 Feb 19, 2024 pm 07:38 PM

標題:如何寫出帶有捲軸的HTML文字方塊程式碼HTML中的文字方塊是常用的使用者輸入控制項之一,在某些情況下,文字內容過長時會導致文字方塊顯示不完整。這時,我們可以透過新增捲軸來讓文字方塊支援滾動查看。本文將詳細介紹如何撰寫具有捲軸效果的HTML文字方塊程式碼,並給出具體的程式碼範例。一、使用textarea元素建立文字方塊在HTML中,我們使用textarea元素來建立文字框

See all articles