jquery实现文本框textarea自适应高度


Posted in Javascript onMarch 09, 2016

浏览器中默认的文本框是不能根据内容的增多变高,只能固定高度有滚动条,体验不是很好,找了很多方法兼容都不行,总算找到个兼容良好的方法:

<body>
    <textarea id="textarea3" style="overflow-y:hidden; height:20px;resize: none">
     
    </textarea>
    <script type="text/javascript" src="js/jquery-1.7.1.min.js"></script>
    <script type="text/javascript">
      $(function() {
        //最小高度和最大高度默认
        $("#textarea1").textareaAutoHeight();
        //最大高度为100px
        $("#textarea2").textareaAutoHeight({maxHeight: 100});
        //最小高度为50px,最大高度为200px
        $("#textarea3").textareaAutoHeight({minHeight: 50, maxHeight: 200});
      })
 
 
      $.fn.extend({
        textareaAutoHeight: function(options) {
          this._options = {
            minHeight: 0,
            maxHeight: 1000
          }
 
          this.init = function() {
            for (var p in options) {
              this._options[p] = options[p];
            }
            if (this._options.minHeight == 0) {
              this._options.minHeight = parseFloat($(this).height());
            }
            for (var p in this._options) {
              if ($(this).attr(p) == null) {
                $(this).attr(p, this._options[p]);
              }
            }
            $(this).keyup(this.resetHeight).change(this.resetHeight)
                .focus(this.resetHeight);
          }
          this.resetHeight = function() {
            var _minHeight = parseFloat($(this).attr("minHeight"));
            var _maxHeight = parseFloat($(this).attr("maxHeight"));
 
            if (!$.browser.msie) {
              $(this).height(0);
            }
            var h = parseFloat(this.scrollHeight);
            h = h < _minHeight ? _minHeight :h > _maxHeight ? _maxHeight : h;
            $(this).height(h).scrollTop(h);
            if (h >= _maxHeight) {
              $(this).css("overflow-y", "scroll");
            }
            else {
              $(this).css("overflow-y", "hidden");
            }
          }
          this.init();
        }
      });
    </script>
  </body>

以上就是本文的全部内容,希望对大家学习jquery程序设计有所帮助。

Javascript 相关文章推荐
js Function类型
Dec 04 Javascript
js快速排序的实现代码
Dec 08 Javascript
js编写当天简单日历效果【实现代码】
May 03 Javascript
js中用cssText设置css样式的简单方法
Sep 19 Javascript
HTML5 JS压缩图片并获取图片BASE64编码上传
Nov 16 Javascript
Bootstrap Table 删除和批量删除
Sep 22 Javascript
vue组件父子间通信之综合练习(聊天室)
Nov 07 Javascript
jQuery NProgress.js加载进度插件的简单使用方法
Jan 31 jQuery
JavaScript设计模式之模板方法模式原理与用法示例
Aug 07 Javascript
图文讲解用vue-cli脚手架创建vue项目步骤
Feb 12 Javascript
Vue.js特性Scoped Slots的浅析
Feb 20 Javascript
vuex + keep-alive实现tab标签页面缓存功能
Oct 17 Javascript
分享12个实用的jQuery代码片段
Mar 09 #Javascript
详解JavaScript正则表达式之分组匹配及反向引用
Mar 09 #Javascript
javascript html5移动端轻松实现文件上传
Mar 27 #Javascript
javascript事件绑定学习要点
Mar 09 #Javascript
js实现分割上传大文件
Mar 09 #Javascript
js实现ctrl+v粘贴上传图片(兼容chrome、firefox、ie11)
Mar 09 #Javascript
基于jQuery的网页影音播放器jPlayer的基本使用教程
Mar 08 #Javascript
You might like
php使用fputcsv()函数csv文件读写数据的方法
2015/01/06 PHP
php实现对两个数组进行减法操作的方法
2015/04/17 PHP
php实现的微信红包算法分析(非官方)
2015/09/25 PHP
Laravel Validator自定义错误返回提示消息并在前端展示
2019/05/09 PHP
父窗口获取弹出子窗口文本框的值
2006/06/27 Javascript
用javascript实现读取txt文档的脚本
2007/07/20 Javascript
javascript 语法基础 想学习js的朋友可以看看
2009/12/16 Javascript
简单实例处理url特殊符号&amp;处理(2种方法)
2013/04/02 Javascript
js中的如何定位固定层的位置
2014/06/15 Javascript
jquery根据属性和index来查找属性值并操作
2014/07/25 Javascript
Javascript动态创建div的方法
2015/02/09 Javascript
Node.js刷新session过期时间的实现方法推荐
2016/05/18 Javascript
jQuery实现点击表格单元格就可以编辑内容的方法【测试可用】
2016/08/01 Javascript
基于MVC方式实现三级联动(JavaScript)
2017/01/23 Javascript
jQuery插件zTree实现的基本树与节点获取操作示例
2017/03/08 Javascript
vue2.0 中#$emit,$on的使用详解
2017/06/07 Javascript
详解vue2.0的Element UI的表格table列时间戳格式化
2017/06/13 Javascript
webstorm中配置nodejs环境及npm的实例
2018/05/15 NodeJs
vue中倒计时组件的实例代码
2018/07/06 Javascript
7个好用的JavaScript技巧分享(译)
2019/05/07 Javascript
vue路由教程之静态路由
2019/09/03 Javascript
Vue通过WebSocket建立长连接的实现代码
2019/11/05 Javascript
Python中一些自然语言工具的使用的入门教程
2015/04/13 Python
Python函数式编程指南(一):函数式编程概述
2015/06/24 Python
Python3+django2.0+apache2+ubuntu14部署网站上线的方法
2018/07/07 Python
Python wxpython模块响应鼠标拖动事件操作示例
2018/08/23 Python
pycharm创建一个python包方法图解
2019/04/10 Python
python使用mitmproxy抓取浏览器请求的方法
2019/07/02 Python
python读写csv文件并增加行列的实例代码
2019/08/01 Python
Python 调用 Outlook 发送邮件过程解析
2019/08/08 Python
Python多线程操作之互斥锁、递归锁、信号量、事件实例详解
2020/03/24 Python
美国知名生活购物网站:Goop
2017/11/03 全球购物
什么情况下你必须要把一个类定义为abstract的
2013/01/06 面试题
小学生家长寄语
2014/04/02 职场文书
研究生给导师的自荐信
2015/03/06 职场文书
公司转让协议书
2016/03/19 职场文书