相关文章推荐
考研的馒头  ·  中央研究院天文及天文物理研究所·  5 月前    · 
暴走的苹果  ·  厚重冬装换季科学清洗收纳_手机搜狐网·  1 年前    · 
道上混的沙发  ·  沧源佤族自治县勐省幼儿园2024年部门预算公 ...·  1 年前    · 
爱玩的小笼包  ·  《复联4》后漫威电影宇宙最佳:《银河护卫队3 ...·  2 年前    · 
英俊的木耳  ·  孔雀公主_ 电影_ bilibili _ ...·  2 年前    · 
小百科  ›  textarea内容自动撑开高度,实现高度自适应开发者社区
自适应 textarea
爱跑步的山寨机
2 年前
作者头像
Daotin
0 篇文章

textarea内容自动撑开高度,实现高度自适应

前往专栏
腾讯云
开发者社区
文档 意见反馈 控制台
首页
学习
活动
专区
工具
TVP
文章/答案/技术大牛
发布
首页
学习
活动
专区
工具
TVP
返回腾讯云官网
社区首页 > 专栏 > 从零开始学 Web 前端 > textarea内容自动撑开高度,实现高度自适应

textarea内容自动撑开高度,实现高度自适应

作者头像
Daotin
发布 于 2021-07-01 10:29:36
13.3K 0
发布 于 2021-07-01 10:29:36
举报

大家好,我是前端队长Daotin,想要获取更多前端精彩内容,关注我(全网同名),解锁前端成长新姿势。

以下正文:

textarea使我们常用的表单元素。一般用于多行文字的输入。在绝大多数情况下,都可以满足我们的要求。

但是它有一个缺点是,它的高度是固定了,如果文本内容超出了它设定的高度时,就会显示出丑陋的滚动条。

然后有些时候,为了用户体验,我们需要让它的高度随着文本内容的高度而动态变化。

最经典的场景就是微博PC网页版的发微博的输入框:

image.png
image.png

发微博的输入框会检测输入内容的高度,如果超出的预设的高度,会随着文本的高度的增加而增加,当文本高度减少的时候,文本框的高度也会随着减少。

今天,就来尝试自己实现这个功能。

实现思路

方法一

首先想到的方法就是 通过js检测文本的高度,然后动态设置文本框的高度 。

这是我的第一想法,也是最容易实现的想法。

具体思路: 当出现滚动条的时候,文本的实际高度就是 **scrollHeight** ,我们只需要设置文本框的高度为内容的 **scrollHeight** 即可。

代码实现:

<!DOCTYPE html>
<html lang="en">
    <title>demo1</title>
    <style>
        textarea {
            width: 200px;
            min-height: 100px;
            padding: 0;
     </style>
</head>
    <textarea placeholder="input..."></textarea> 
</body>
<script>
    var textarea = document.querySelector('textarea');
    textarea.addEventListener('input', (e) => {
        textarea.style.height = '100px';
 
推荐文章
考研的馒头  ·  中央研究院天文及天文物理研究所
5 月前
暴走的苹果  ·  厚重冬装换季科学清洗收纳_手机搜狐网
1 年前
道上混的沙发  ·  沧源佤族自治县勐省幼儿园2024年部门预算公开目录-沧源县
1 年前
爱玩的小笼包  ·  《复联4》后漫威电影宇宙最佳:《银河护卫队3》豆瓣开分8.7 - IT之家
2 年前
英俊的木耳  ·  孔雀公主_ 电影_ bilibili _ 哔哩哔哩弹幕视频网
2 年前
今天看啥   ·   Py中国   ·   codingpro   ·   小百科   ·   link之家   ·   卧龙AI搜索
删除内容请联系邮箱 2879853325@qq.com
小百科 - 百科知识指南
© 2024 ~ 沪ICP备11025650号