一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

Jquery下Textarea文本框自动适应高度实例

时间:2013-11-16 编辑:简简单单 来源:一聚教程网

例1

 代码如下 复制代码





文本框根据输入内容<a href="/tags.php/%D7%D4%CA%CA%D3%A6%B8%DF%B6%C8/" target="_blank">自适应高度</a>


/**
 * 文本框根据输入内容自适应高度
 * @author  tang bin
 * @version  0.3
 * @see   
 * @param  {HTMLElement} 输入框元素
 * @param  {Number}  设置光标与输入框保持的距离(默认20)
 * @param  {Number}  设置最大高度(可选)
 */
var autoTextarea = function (elem, extra, maxHeight) {
 extra = extra || 20;
 var isFirefox = !!document.getBoxObjectFor || 'mozInnerScreenX' in window,
        isOpera = !!window.opera && !!window.opera.toString().indexOf('Opera'),
  addEvent = function (type, callback) {
   elem.addEventListener ?
    elem.addEventListener(type, callback, false) :
    elem.attachEvent('on' + type, callback);
  },
  getStyle = elem.currentStyle ? function (name) {
   var val = elem.currentStyle[name];
   
   if (name === 'height' && val.search(/px/i) !== 1) {
    var rect = elem.getBoundingClientRect();
    return rect.bottom - rect.top -
     parseFloat(getStyle('paddingTop')) -
     parseFloat(getStyle('paddingBottom')) + 'px'; 
   };
   
   return val;
  } : function (name) {
    return getComputedStyle(elem, null)[name];
  },
  minHeight = parseFloat(getStyle('height'));
 
 elem.style.maxHeight = elem.style.resize = 'none';
 
 var change = function () {
  var scrollTop, height,
   padding = 0,
   style = elem.style;
  
  if (elem._length === elem.value.length) return;
  elem._length = elem.value.length;
  
  if (!isFirefox && !isOpera) {
   padding = parseInt(getStyle('paddingTop')) + parseInt(getStyle('paddingBottom'));
  };

  scrollTop = document.body.scrollTop || document.documentElement.scrollTop;
  
  elem.style.height = minHeight + 'px';
  if (elem.scrollHeight > minHeight) {
   if (maxHeight && elem.scrollHeight > maxHeight) {
    height = maxHeight - padding;
    style.overflowY = 'auto';
   } else {
    height = elem.scrollHeight - padding;
    style.overflowY = 'hidden';
   };

   style.height = height + extra + 'px';
   scrollTop += parseInt(style.height) - elem.currHeight;
   document.body.scrollTop = scrollTop;
   document.documentElement.scrollTop = scrollTop;
   elem.currHeight = parseInt(style.height);
  };
 };
 
 addEvent('propertychange', change);
 addEvent('input', change);
 addEvent('focus', change);
 change();
};






下面再介绍一个只是调用方法有一点不错

我们来看看代码:

 代码如下 复制代码










 

Jquery实现 TextArea 文本框根据输入内容自动适应高度



 


热门栏目