• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    做一个能自适应高度的textarea的示例代码

    方法

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

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

    上一篇:3种方式实现瀑布流布局小结
    下一篇:html5借用repeating-linear-gradient实现一把刻度尺(ruler)
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

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