做一个能自适应高度的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实现超立体3D图片侧翻倾斜效果
Apr 16 HTML / CSS
浅谈CSS3 box-sizing 属性 有趣的盒模型
Apr 02 HTML / CSS
html5指南-1.html5全局属性(html5 global attributes)深入理解
Jan 07 HTML / CSS
HTML5样式控制示例代码
Nov 27 HTML / CSS
HTML5 embed标签定义和用法详解
May 09 HTML / CSS
HTML5+CSS3:3D展示商品信息示例
Jan 03 HTML / CSS
详解android与HTML混合开发总结
Jun 06 HTML / CSS
利用canvas实现图片压缩的示例代码
Jul 17 HTML / CSS
在html页面中取得session中的值的方法
Aug 11 HTML / CSS
AmazeUI的下载配置与Helloworld的实现
Aug 19 HTML / CSS
六个好看实用的 HTML + CSS 后台登录入口页面
Apr 28 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
WordPress导航菜单的滚动和淡入淡出效果的实现要点
2015/12/14 PHP
学习PHP Cookie处理函数
2016/08/09 PHP
Yii2实现增删改查后留在当前页的方法详解
2017/01/13 PHP
Yii 2.0实现联表查询加搜索分页的方法示例
2017/08/02 PHP
关于Yii2框架跑脚本时内存泄漏问题的分析与解决
2019/12/01 PHP
javascript脚本编程解决考试分数统计问题
2008/10/18 Javascript
javascript面向对象之二 命名空间
2011/02/08 Javascript
在jQuery中 常用的选择器介绍
2013/04/16 Javascript
JS自动适应的图片弹窗实例
2013/06/29 Javascript
基于JavaScript实现 网页切出 网站title变化代码
2016/04/03 Javascript
JS简单实现tab切换效果的多窗口显示功能
2016/09/07 Javascript
JavaScript高仿支付宝倒计时页面及代码实现
2016/10/21 Javascript
微信小程序 跳转方式总结
2017/04/20 Javascript
React进阶学习之组件的解耦之道
2017/08/07 Javascript
基于webpack4搭建的react项目框架的方法
2018/06/30 Javascript
python 实现插入排序算法
2012/06/05 Python
Python简单实现控制电脑的方法
2018/01/22 Python
Python cookbook(字符串与文本)针对任意多的分隔符拆分字符串操作示例
2018/04/19 Python
对numpy中的数组条件筛选功能详解
2018/07/02 Python
对python数据切割归并算法的实例讲解
2018/12/12 Python
零基础使用Python读写处理Excel表格的方法
2019/05/02 Python
python代理工具mitmproxy使用指南
2019/07/04 Python
python 控制Asterisk AMI接口外呼电话的例子
2019/08/08 Python
python解释器spython使用及原理解析
2019/08/24 Python
python 进程间数据共享multiProcess.Manger实现解析
2019/09/23 Python
一款纯css3实现的漂亮的404页面的实例教程
2014/11/27 HTML / CSS
Oral-B荷兰:牙医最推荐的品牌
2020/02/25 全球购物
2013的个人自我评价
2013/12/26 职场文书
青春励志演讲稿
2014/04/29 职场文书
工商干部先进事迹
2014/05/14 职场文书
幼儿园教师的自我评价范文
2014/09/17 职场文书
科技活动周标语
2014/10/08 职场文书
2014年手术室工作总结
2014/11/26 职场文书
2014小学年度工作总结
2014/12/20 职场文书
考研复习计划
2015/01/19 职场文书
Python关于OS文件目录处理的实例分享
2021/05/23 Python