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 相关文章推荐
JavaScript日历实现代码
Sep 12 Javascript
Javascript aop(面向切面编程)之around(环绕)分析
May 01 Javascript
深入分析JSON编码格式提交表单数据
Jun 25 Javascript
纯css实现窗户玻璃雨滴逼真效果
Aug 23 Javascript
基于JavaScript实现文字超出部分隐藏
Feb 29 Javascript
使用jquery datatable和bootsrap创建表格实例代码
Mar 17 Javascript
深入理解Vue-cli搭建项目后的目录结构探秘
Jul 13 Javascript
vue axios同步请求解决方案
Sep 29 Javascript
JS中Attr的用法详解
Oct 09 Javascript
node.js ws模块搭建websocket服务端的方法示例
Apr 25 Javascript
JavaScript 继承 封装 多态实现及原理详解
Jul 29 Javascript
微信小程序封装分享与分销功能过程解析
Aug 13 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
星际争霸 Starcraft 编年史
2020/03/14 星际争霸
php学习之流程控制实现代码
2011/06/09 PHP
PHP打开和关闭文件操作函数总结
2014/11/18 PHP
使用js获取QueryString的方法小结
2010/02/28 Javascript
JavaScript实现网页图片等比例缩放实现代码及调用方式
2013/02/25 Javascript
node.js中的http.createServer方法使用说明
2014/12/14 Javascript
JavaScript中对象介绍
2014/12/31 Javascript
jquery仅用6行代码实现滑动门效果
2015/09/07 Javascript
jquery分页插件jquery.pagination.js使用方法解析
2016/04/01 Javascript
AngularJs ng-route路由详解及实例代码
2016/09/14 Javascript
js实现文字向上轮播功能
2017/01/13 Javascript
Vue.js数据绑定之data属性
2017/07/07 Javascript
js中的数组对象排序分析
2018/12/11 Javascript
Vue监听页面刷新和关闭功能
2019/06/20 Javascript
解决vue-cli输入命令vue ui没效果的问题
2020/11/17 Javascript
[01:04:35]2018DOTA2亚洲邀请赛 4.3 突围赛 Secret vs VG 第一场
2018/04/04 DOTA
python3模拟百度登录并实现百度贴吧签到示例分享(百度贴吧自动签到)
2014/02/24 Python
由Python运算π的值深入Python中科学计算的实现
2015/04/17 Python
简单易懂的python环境安装教程
2017/07/13 Python
numpy返回array中元素的index方法
2018/06/27 Python
win10系统下Anaconda3安装配置方法图文教程
2018/09/19 Python
Python3+Appium实现多台移动设备操作的方法
2019/07/05 Python
详解Python中的各种转义符\n\r\t
2019/07/10 Python
pymysql之cur.fetchall() 和cur.fetchone()用法详解
2020/05/15 Python
boostrap modal 闪现问题的解决方法
2020/09/01 HTML / CSS
法国在线药房:DoctiPharma
2020/10/21 全球购物
什么是Linux虚拟文件系统VFS
2012/01/31 面试题
国际商务英语专业求职信
2014/07/08 职场文书
交通工程专业推荐信
2014/09/06 职场文书
学校计划生育责任书
2015/05/09 职场文书
亮剑精神观后感
2015/06/05 职场文书
Nginx的rewrite模块详解
2021/03/31 Servers
Win11怎么进入安全模式?Windows 11进入安全模式的方法
2021/11/21 数码科技
vue如何使用模拟的json数据查看效果
2022/03/31 Vue.js
动视暴雪取消疫苗禁令 让所有员工返回线下工作
2022/04/03 其他游戏
JS开发前端团队展示控制器来为成员引流
2022/08/14 Javascript