做一个能自适应高度的textarea的示例代码


Posted in HTML / CSS onSeptember 06, 2019

方法

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的高度。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

HTML / CSS 相关文章推荐
真正了解CSS3背景下的@font face规则
May 04 HTML / CSS
深入理解css中vertical-align属性
Apr 18 HTML / CSS
浅谈css3中的渐进增强和优雅降级
Dec 01 HTML / CSS
css3通过scale()、rotate()实现放大、旋转
Mar 19 HTML / CSS
HTML5边玩边学(2)基础绘图实现方法
Sep 21 HTML / CSS
基于HTML5 WebGL的3D机房的示例
Mar 16 HTML / CSS
使用canvas实现黑客帝国数字雨效果
Jan 02 HTML / CSS
css3实现的加载动画效果
Apr 07 HTML / CSS
详解CSS不受控制的position fixed
May 25 HTML / CSS
深入理解margin塌陷和margin合并的解决方案
Jun 26 HTML / CSS
纯CSS如何禁止用户复制网页的内容
Nov 01 HTML / CSS
详解CSS中postion和opacity及cursor的特性
Aug 14 HTML / CSS
3种方式实现瀑布流布局小结
Sep 05 #HTML / CSS
Html5 页面适配iPhoneX(就是那么简单)
Sep 05 #HTML / CSS
html5 外链式实现加减乘除的代码
Sep 04 #HTML / CSS
three.js模拟实现太阳系行星体系功能
Sep 03 #HTML / CSS
HTML5 3D书本翻页动画的实现示例
Aug 28 #HTML / CSS
详解canvas绘制网络字体几种方法
Aug 27 #HTML / CSS
前端实现打印图像功能
Aug 27 #HTML / CSS
You might like
PHP XML数据解析代码
2010/05/26 PHP
php生成图片验证码的实例讲解
2015/08/03 PHP
详解WordPress中用于更新和获取用户选项数据的PHP函数
2016/03/08 PHP
详谈php中 strtr 和 str_replace 的效率问题
2017/05/14 PHP
使用laravel的migrate创建数据表的方法
2019/09/30 PHP
使用jscript实现二进制读写脚本代码
2008/06/09 Javascript
Extjs407 getValue()和getRawValue()区别介绍
2013/05/21 Javascript
js实现鼠标滚轮控制图片缩放效果的方法
2015/02/20 Javascript
jquery validate demo 基础
2015/10/29 Javascript
Uploadify上传文件方法
2016/03/16 Javascript
JS判断日期格式是否合法的简单实例
2016/07/11 Javascript
js获取指定字符前/后的字符串简单实例
2016/10/27 Javascript
EasyUI 中combotree 默认不能选择父节点的实现方法
2016/11/07 Javascript
JS+CSS3制作炫酷的弹窗效果
2016/11/08 Javascript
js for循环倒序输出数组元素的实例
2017/03/01 Javascript
Angular 实现输入框中显示文章标签的实例代码
2018/11/07 Javascript
[03:03]2014DOTA2国际邀请赛 EG战队专访
2014/07/12 DOTA
Python中使用 Selenium 实现网页截图实例
2014/07/18 Python
安装Python的web.py框架并从hello world开始编程
2015/04/25 Python
python中argparse模块用法实例详解
2015/06/03 Python
详谈Pandas中iloc和loc以及ix的区别
2018/06/08 Python
python挖矿算力测试程序详解
2019/07/03 Python
浅析HTML5页面元素及属性
2021/01/20 HTML / CSS
美国购买和销售礼品卡平台:Raise
2017/01/13 全球购物
Dune London官网:英国著名奢华鞋履品牌
2017/11/30 全球购物
美国男士内衣品牌:Tommy John
2017/12/22 全球购物
吉列剃须刀美国官网:Gillette美国
2018/07/13 全球购物
减负增效提质方案
2014/05/23 职场文书
2014年入党积极分子党校培训心得体会
2014/07/08 职场文书
小学教师自我剖析材料
2014/09/29 职场文书
党的群众路线教育实践活动查摆剖析材料
2014/10/10 职场文书
2014年世界艾滋病日演讲稿
2014/11/28 职场文书
2014年社区工会工作总结
2014/12/18 职场文书
先进工作者事迹材料
2014/12/23 职场文书
青年文明号创建口号大全
2015/12/25 职场文书
朋友圈早安励志语录!
2019/07/08 职场文书