您好,登錄后才能下訂單哦!
本文小編為大家詳細介紹“如何實現textarea自適應高度”,內容詳細,步驟清晰,細節處理妥當,希望這篇“如何實現textarea自適應高度”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。
方法
1. HTML結構:
<div id="container">
<textarea rows="1"></textarea>
</div>
2. CSS代碼:
* {
padding: 0;
margin: 0;
}
#container {
width: 300px;
padding: 10px;
border: 1px solid #eee;
box-sizing: border-box;
}
textarea {
display: block;
width: 100%;
font-size: 20px;
color: #000;
line-height: 24px;
outline: none;
border: none;
resize: none;
}
3. JS代碼:
var textarea = document.querySelector('textarea')
var inpnt = (function () {
var baseHeight = null
return function () {
!baseHeight && (baseHeight = this.scrollHeight)
this.rows = 1
var rows = Math.ceil(this.scrollHeight / baseHeight) >= 3 ? 3 : Math.ceil(this
.scrollHeight / baseHeight)
this.rows = rows
}
})()
textarea.oninput = debounce(inpnt, 100)
function debounce(func, delay) {
var timer = null
return function () {
var _this = this
var args = arguments
timer && clearTimeout(timer)
timer = setTimeout(function () {
func.apply(_this, args)
}, delay)
}
}
原理:
!baseHeight && (baseHeight = this.scrollHeight)
this.rows = 1
var rows = Math.ceil(this.scrollHeight / baseHeight) >= 3 ? 3 : Math.ceil(this
.scrollHeight / baseHeight)
this.rows = rows
第一行 獲取基準高度 緩存起
第二行 重點 將textarea的rows設置成1 這樣就能得到當前textarea的scrollHeight
第三行 拿到了當前textarea的scrollHeight 就可以算出rows
第四行 設置textarea的rows
通過設置textarea的rows屬性來改變textarea的高度。
讀到這里,這篇“如何實現textarea自適應高度”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。