textarea自适应高度JQuery插件

2013年03月25日 0条评论 36 views 标签:,

其实吧这个效果以前也写过,那个是使用div模拟的这样的话可以不用考虑删除的时候不变化的情况,还有就是复制黏贴的情况,这些不是大家熟悉的事件,这里要使用
onpropertychange和oninput来实现,还有就是当设置了最大高度的时候的问题,我这里实现了Math.min来实现的,省的老判断了,麻烦,封装成了一个jQuery的插件

HTML代码:

<textarea name="" class="area" ></textarea>
<textarea name="" class="area" ></textarea>

JavaScript代码:

首先要引入JQ文件

(function($){
           $.fn.adaptiveTextarea = function(options){
               $.fn.adaptiveTextarea.defaults = {
                   "maxH":99999,
                   "minH":0
               };
               var opts = $.extend({},$.fn.adaptiveTextarea.defaults,options);
               return this.each(function(){
                   var $this = $(this);
                   var defaultH = opts.minH || $this.height();
                   //初始化
                   $this.css({
                       "overflow":"auto",
                       "resize":"none",
                       "height":defaultH + "px"
                   });
                   $this.off("propertychange input").on("propertychange input",function(){
                       this.style.height = defaultH + "px";
                       if(opts.maxH >= opts.minH){
                           this.style.height = Math.min(this.scrollHeight,opts.maxH) + "px";
                       }
                   });
               });
           }
       })(jQuery);
        //调用
        $(function(){
            $(".area").adaptiveTextarea({
                minH:80,
                maxH:300
            });
        });


无觅m88帮助网站插件,快速提升流量

你也可以分享到: