textarea 自适应高度,js和angular两个版本

Posted blogs-wang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了textarea 自适应高度,js和angular两个版本相关的知识,希望对你有一定的参考价值。

angular 版本----------

pc   移动端都经过测试,没问题 放心用吧!

directiveApp.directive(‘autoHeight‘function()
      function autoHeight(elem)
          elem.style.height = ‘auto‘;
          elem.scrollTop = 0; //防抖动
          elem.style.height = elem.scrollHeight + ‘px‘;
      
 
      return 
          scope: ,
          link: function (scope, ele, attrs)
              var oriEle = $(ele).get(0);
              $(oriEle).focus();
              $(oriEle).bind(‘keyup click‘function(e)
                  autoHeight($(this).get(0));
              );
              var timer = setInterval(function()
                  if($(oriEle).val())
                      autoHeight(oriEle);
                      clearInterval(timer);
                  
              , 100);
          
      ;
  );<br>

 

1
2
html code:
  <textarea auto-height></textarea>

-------------------------------------------------------------------------------------------------------------------------------

js版本

1.引入Jquery.

 

<script id="jquery_183" type="text/javascript" class="library" src="/js/sandbox/jquery/jquery-1.8.3.min.js"></script>

 

2.引入初始css.

 

 

body background:#fff;

textarea width:300px; min-height:60px; overflow:hidden;

 

3.加入自适应的JS

$.fn.autoHeight = function()
    
    function autoHeight(elem)
        elem.style.height = ‘auto‘;
        elem.scrollTop = 0; //防抖动
        elem.style.height = elem.scrollHeight + ‘px‘;
    
    
    this.each(function()
        autoHeight(this);
        $(this).on(‘keyup‘, function()
            autoHeight(this);
        );
    );
 

    
    
$(‘textarea[autoHeight]‘).autoHeight();

 

4.加入textarea

<div><textarea autoHeight="true">textarea</textarea></div>

 

1.引入Jquery.

 

<script id="jquery_183" type="text/javascript" class="library" src="/js/sandbox/jquery/jquery-1.8.3.min.js"></script>

 

2.引入初始css.

 

 

body background:#fff;

textarea width:300px; min-height:60px; overflow:hidden;

 

3.加入自适应的JS

$.fn.autoHeight = function()
    
    function autoHeight(elem)
        elem.style.height = ‘auto‘;
        elem.scrollTop = 0; //防抖动
        elem.style.height = elem.scrollHeight + ‘px‘;
    
    
    this.each(function()
        autoHeight(this);
        $(this).on(‘keyup‘, function()
            autoHeight(this);
        );
    );
 

    
    
$(‘textarea[autoHeight]‘).autoHeight();

 

4.加入textarea

<div><textarea autoHeight="true">textarea</textarea></div>

 

$(function()
        $.fn.autoHeight = function()    
        function autoHeight(elem)
            elem.style.height = ‘auto‘;
            elem.scrollTop = 0; //防抖动
            elem.style.height = elem.scrollHeight + ‘px‘;
        
        this.each(function()
            autoHeight(this);
            $(this).on(‘keyup‘, function()
                autoHeight(this);
            );
        );     
                    
    $(‘textarea[autoHeight]‘).autoHeight();    
)

页面中的textarea直接加属性就行

<textarea  autoHeight="true" readonly="readonly" > </textarea>

以上是关于textarea 自适应高度,js和angular两个版本的主要内容,如果未能解决你的问题,请参考以下文章

js库链接

textarea多行文本框自适应高度

textarea高度自适应

div模拟textarea自适应高度

18_09_05 textarea高度自适应 和 Z-index

如何让textarea的高度自适应