相关文章推荐
爱笑的登山鞋  ·  测试覆盖率 | 指南 | Vitest·  昨天    · 
月球上的牛肉面  ·  静音耳机派对 |什么是无声迪斯科?·  11 月前    · 
打酱油的椰子  ·  OpenSeadragon 实战系列基础篇 ...·  1 年前    · 
乖乖的鸵鸟  ·  天津2023年中考录取分数线一览表- 天津本地宝·  1 年前    · 
追风的水煮鱼  ·  python大牛编码样板_什么是样板,为什么 ...·  1 年前    · 
Code  ›  textarea内容自动撑开高度,实现高度自适应开发者社区
自适应 textarea
https://cloud.tencent.com/developer/article/1840701
爱跑步的山寨机
3 年前
作者头像
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';
 
推荐文章
爱笑的登山鞋  ·  测试覆盖率 | 指南 | Vitest
昨天
月球上的牛肉面  ·  静音耳机派对 |什么是无声迪斯科?
11 月前
打酱油的椰子  ·  OpenSeadragon 实战系列基础篇 - 一杯清酒邀明月 - 博客园
1 年前
乖乖的鸵鸟  ·  天津2023年中考录取分数线一览表- 天津本地宝
1 年前
追风的水煮鱼  ·  python大牛编码样板_什么是样板,为什么要使用它? 编码风格指南的必要性-CSDN博客
1 年前
今天看啥   ·   Py中国   ·   codingpro   ·   小百科   ·   link之家   ·   卧龙AI搜索
删除内容请联系邮箱 2879853325@qq.com
Code - 代码工具平台
© 2024 ~ 沪ICP备11025650号