最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
做一个能自适应高度的textarea代码实例
时间:2022-06-25 18:02:12 编辑:袖梨 来源:一聚教程网
本篇文章小编给大家分享一下做一个能自适应高度的textarea代码实例,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看。
方法
1. HTML结构:
2. CSS代码:
css;"> * {
padding: 0;
margin: 0;
}
#container {
padding: 10px;
border: 1px solid #eee;
box-sizing: border-box;
}
textarea {
display: block;
width: 100%;
font-size: 20px;
color: #000;
line-
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的高度。
相关文章
- 对决剑之川叶雨时厉害吗 07-22
- 盘点性价比高的购票软件哪个更好 便宜的购票软件排行榜 07-22
- 英语app排行榜前十名有哪些 常用英语app大全 07-22
- 比较靠谱的免费软件app合集 靠谱的软件有哪些 07-22
- black souls2大胃袋成就解锁攻略 07-22
- 考试酷网页版登陆入口-考试酷网页版学生登陆 07-22