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 相关文章推荐
jquery.validate使用攻略 第三部
Jul 01 Javascript
javascript中的prototype属性实例分析说明
Aug 09 Javascript
基于jquery实现最简单的选项卡切换效果
May 08 Javascript
BootStrap 导航条实例代码
May 18 Javascript
js实现拖拽上传图片功能
Aug 01 Javascript
微信小程序使用audio组件播放音乐功能示例【附源码下载】
Dec 08 Javascript
Javascript中JSON数据分组优化实践及JS操作JSON总结
Dec 22 Javascript
react在安卓中输入框被手机键盘遮挡问题的解决方法
Sep 03 Javascript
JS实现点击拉拽轮播图pc端移动端适配
Sep 05 Javascript
vuex+axios+element-ui实现页面请求loading操作示例
Feb 02 Javascript
Vue提供的三种调试方式你知道吗
Jan 18 Vue.js
vue route新窗口跳转页面并且携带与接收参数
Apr 10 Vue.js
分享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
环境会对咖啡种植有什么影响
2021/03/03 咖啡文化
php 上一篇,下一篇文章实现代码与原理说明
2010/05/09 PHP
PHP URL参数获取方式的四种例子
2014/02/28 PHP
php中FTP函数ftp_connect、ftp_login与ftp_chmod用法
2014/11/18 PHP
用PHP代码给图片加水印
2015/07/01 PHP
Laravel框架模型的创建及模型对数据操作示例
2019/05/07 PHP
php7 错误处理机制修改实例分析
2020/05/25 PHP
基于jquery的tab切换 js原理
2010/04/01 Javascript
jquery 跨域访问问题解决方法(笔记)
2011/06/08 Javascript
使用jquery读取html5 localstorage的值的方法
2013/01/04 Javascript
jquery解析xml字符串示例分享
2014/03/25 Javascript
jquery mobile的触控点击事件会多次触发问题的解决方法
2014/05/08 Javascript
jQuery实现仿Google首页拖动效果的方法
2015/05/04 Javascript
jQuery实现可以控制图片旋转角度效果(附demo源码下载)
2016/01/27 Javascript
JS中作用域和变量提升(hoisting)的深入理解
2016/10/31 Javascript
jQuery纵向导航菜单效果实现方法
2016/12/19 Javascript
JS实现获取毫秒值及转换成年月日时分秒的方法
2018/08/15 Javascript
Vue入门之数量加减运算操作示例
2018/12/11 Javascript
Jquery高级应用Deferred对象原理及使用实例
2020/05/28 jQuery
python fabric使用笔记
2015/05/09 Python
Python实现登陆文件验证方法
2018/10/06 Python
Python判断对象是否相等及eq函数的讲解
2019/02/25 Python
tensorflow tf.train.batch之数据批量读取方式
2020/01/20 Python
python GUI库图形界面开发之PyQt5布局控件QHBoxLayout详细使用方法与实例
2020/03/06 Python
python抢购软件/插件/脚本附完整源码
2021/03/04 Python
中国综合网上购物商城:苏宁易购
2016/08/09 全球购物
英国的知名精品百货公司:House of Fraser(福来德)
2016/08/14 全球购物
Kendra Scott官网:美国领先的时尚配饰品牌
2020/10/22 全球购物
.NET面试题:什么是值类型和引用类型
2016/01/12 面试题
民生工程实施方案
2014/03/22 职场文书
三方合作协议书范本
2014/04/18 职场文书
煤矿安全生产标语
2014/06/06 职场文书
2014年青年教师工作总结
2014/12/17 职场文书
房地产公司工程部经理岗位职责
2015/04/09 职场文书
教你怎么用Python实现GIF动图的提取及合成
2021/06/15 Python
一文搞懂Python Sklearn库使用
2021/08/23 Python