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 相关文章推荐
ECMAScript 基础知识
Jun 29 Javascript
使用javascipt---实现二分查找法
Apr 10 Javascript
用javascript判断IE版本号简单实用且向后兼容
Sep 11 Javascript
方便实用的jQuery checkbox复选框全选功能简单实例
Oct 09 Javascript
JS弹出层单纯的绝对定位居中示例代码
Feb 18 Javascript
很全面的JavaScript常用功能汇总集合
Jan 22 Javascript
基于javascript实现页面加载loading效果
Sep 15 Javascript
H5用户注册表单页 注册模态框!
Sep 17 Javascript
vue-cli基础配置及webpack配置修改的完整步骤
Oct 20 Javascript
Vue项目vscode 安装eslint插件的方法(代码自动修复)
Apr 15 Javascript
浅析JavaScript 函数防抖和节流
Jul 13 Javascript
微信小程序实现翻牌抽奖动画
Sep 21 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类相关知识点实例总结
2016/09/28 PHP
php实现网页端验证码功能
2017/07/11 PHP
用js实现手把手教你月入万刀(转贴)
2007/11/07 Javascript
javascript 短路法代码精简
2009/08/20 Javascript
javascript学习笔记(五)正则表达式
2011/04/08 Javascript
{}与function(){}选用空对象{}来存放keyValue
2012/05/23 Javascript
Javascript的常规数组和关联数组对比小结
2012/05/24 Javascript
超炫的jquery仿flash导航栏特效
2014/11/11 Javascript
jQuery简单实现网页选项卡特效
2014/11/24 Javascript
JS仿Windows开机启动Loading进度条的方法
2015/02/26 Javascript
原生js实现百叶窗效果及原理介绍
2016/04/12 Javascript
老生常谈JQuery data方法的使用
2016/09/09 Javascript
利用JS轻松实现获取表单数据
2016/12/06 Javascript
微信小程序删除处理详解
2017/08/16 Javascript
vue项目优化之通过keep-alive数据缓存的方法
2017/12/11 Javascript
最简单的JS实现json转csv的方法
2019/01/10 Javascript
编写v-for循环的技巧汇总
2020/12/01 Javascript
Python cx_freeze打包工具处理问题思路及解决办法
2016/02/13 Python
浅谈Python peewee 使用经验
2017/10/20 Python
pycharm运行出现ImportError:No module named的解决方法
2018/10/13 Python
Flask核心机制之上下文源码剖析
2018/12/25 Python
django 实现编写控制登录和访问权限控制的中间件方法
2019/01/15 Python
使用python代码进行身份证号校验的实现示例
2019/11/21 Python
Python实现手机号自动判断男女性别(实例解析)
2019/12/22 Python
Python发起请求提示UnicodeEncodeError错误代码解决方法
2020/04/21 Python
python 中 .py文件 转 .pyd文件的操作
2021/03/04 Python
澳大利亚领先的武术用品和健身器材供应商:SMAI
2019/03/24 全球购物
奥地利度假券的专家:we-are.travel
2019/04/10 全球购物
师德师风个人反思
2014/04/28 职场文书
妈妈活动方案
2014/08/15 职场文书
承诺函格式模板
2015/01/21 职场文书
2016年会领导致辞稿
2015/07/29 职场文书
毕业班工作总结
2015/08/10 职场文书
Nginx的rewrite模块详解
2021/03/31 Servers
python 模拟在天空中放风筝的示例代码
2021/04/21 Python
python实现股票历史数据可视化分析案例
2021/06/10 Python