`
adrift
  • 浏览: 19139 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

自动改变大小的textarea

 
阅读更多

/*
Auto-growing textareas; technique ripped from Facebook
(Textarea need set style "overflow:hidden" under IE)
*/
(function($) {
function times(string, number) {
  for (var i = 0, r = ''; i < number; i ++) r += string;
  return r;
}

$.fn.autogrow = function(options) {
  this.filter('textarea').each(function() {
    this.timeoutId = null;
    var $this = $(this), minHeight = $this.height();
    var shadow = $('<div></div>').css({
      position:   'absolute',
      wordWrap:   'break-word',
      top:        0,
      left:       -9999,
      display:    'none',
      width:      $this.width(),
      fontSize:   $this.css('fontSize'),
      fontFamily: $this.css('fontFamily'),
      lineHeight: $this.css('lineHeight')
    }).appendTo(document.body);

    var update = function() {
      var val = this.value.replace(/</g, '&lt;')
        .replace(/>/g, '&gt;')
        .replace(/&/g, '&amp;')
        .replace(/\n$/, '<br/>&nbsp;')
        .replace(/\n/g, '<br/>')
        .replace(/ {2,}/g, function(space) { return times('&nbsp;', space.length -1) + ' ' });
      shadow.html(val);
      $(this).css('height', Math.max(shadow.height(), minHeight));
    }
    
    var updateTimeout = function() {
      clearTimeout(this.timeoutId);
      var that = this;
      this.timeoutId = setTimeout(function(){ update.apply(that); }, 100);
    };

    $(this).change(update).keyup(updateTimeout).keydown(updateTimeout);
    update.apply(this);
  });
  return this;
}
})(jQuery);
 使用例子:
<!DOCTYPE HTML>
<html>
<head>
<script src="jquery.js"></script>
<script src="jquery.autogrow.textarea.js"></script>
<script type="text/javascript" language="javascript">
$(function() {
$("textarea").autogrow();
});
</script>
</head>
<body>
  <textarea id="t1" style="overflow:hidden"></textarea>
</body>
</html>
 

分享到:
评论

相关推荐

    TextareaAutosize根据内容的大小自动调整Textarea

    这个插件会监听`Textarea`上的`input`和`change`事件,每当用户输入或删除文本时,都会自动调整`Textarea`的高度以适应新的内容。以下是基本的使用步骤: 1. 首先,在HTML中创建一个`Textarea`元素,确保设置好它的...

    定宽的textarea根据内容自动调整高度

    但是,这些属性并不能让`textarea`根据内容动态调整大小。要实现自动调整高度的功能,我们需要借助JavaScript或者CSS的一些技巧。 一种常见的JavaScript解决方案是监听`textarea`的`input`事件,当用户输入内容时,...

    基于jQuery的“autoresize”插件自动改变textarea大小

    本篇文章将详细介绍基于jQuery的"autoresize"插件,以及如何使用它来自动改变textarea的大小。 jQuery是一个广泛使用的JavaScript库,它简化了DOM操作、事件处理和动画效果。"autoresize"插件是jQuery的一个扩展,...

    固定textarea文本域尺寸

    要禁用 `textarea` 的拖动调整大小功能,可以通过CSS样式来实现。关键在于设置 `resize` 属性。`resize` 属性决定了一个元素是否可由用户调整其大小。它有以下几个可选值: 1. `none` - 禁止元素的大小调整。 2. `...

    textarea-autosize:自动将textarea调整为其内容的大小

    Textarea自动调整大小自动将textarea调整为其内容的大小。安装$ npm install @github/textarea-autosize用法必须在&lt;textarea&gt;上显式激活自动调整大小的行为。 import autosize from '@github/textarea-...

    Vue下textarea文本框根据内容自适应改变高度

    同时,我们还监听了`value`属性的变化,当父组件传递的值改变时,也会自动调整高度。 在样式部分,我们设置了`.auto-height-textarea`的宽度为100%,使其充满容器。 然而,IE浏览器有一个已知问题,即在某些情况下...

    textarea

    通过对`textarea`元素的宽度和高度进行合理的设置,可以实现其根据内容的变化自动调整大小的功能。此外,通过合理设置`wrap`属性,还可以更好地控制文本的换行方式,使得用户输入更加灵活便捷。这些技术在实际开发中...

    文本框根据输入内容自动调整大小

    需要注意的是,`autosize`主要关注高度的调整,宽度通常不会自动改变,因为宽度可能受到布局和设计的限制。如果需要同时调整宽度,可能需要自定义解决方案或寻找其他支持宽度自动调整的库。 此外,对于移动设备或...

    让textarea自动调整大小的js代码

    为了提供更好的用户体验,可以使用JavaScript来实现`textarea`的自动调整大小功能。本文将详细解释如何使用JavaScript代码实现这一功能,并对给出的代码进行解析。 首先,我们需要了解`textarea`的基本结构。在HTML...

    textarea 自适应大小 兼容Chrome ie等浏览器

    textarea 自适应大小 兼容Chrome ie等浏览器,自动调整大小

    FLEX自动调整大小文本框控件

    这个"自动调整大小文本框控件"是FLEX开发中的一个实用组件,它解决了在显示动态内容时,文本框尺寸需要随内容长度变化的问题。通过这样的组件,开发者可以创建更灵活、用户体验更佳的界面。 首先,我们来看...

    textarea剩余字数

    例如,使用jQuery插件`autosize`可以自动调整`textarea`的高度以适应内容: ```javascript $('textarea').autosize(); ``` ### 8. 使用框架如React或Vue 在现代前端开发中,`textarea`经常与React或Vue等框架结合...

    Textarea-auto-resize:自动调整文本区域的大小

    Textarea-自动调整大小自动调整文本区域的大小步骤1: 在页面底部包含 textarea-autoresize.min.js 第2步: 给要自动调整大小的 textarea(s) 类“textarea-auto-resize” 第 3 步: 利润

    textarea 样式

    ` 定义了`textarea`中文字的字体和大小,确保了文本的可读性和一致性。 - `height: 160px;` 和 `width: 100%;` 控制了`textarea`的高度和宽度,使其适应不同的屏幕尺寸和布局需求。 #### 外边距与内边距 - `margin...

    react-reacttextareaautosize能够根据内容自动扩展的Reacttextarea组件

    这种自动调整高度的功能使得用户在填写长文本时,界面始终保持整洁,无需手动滚动或调整窗口大小。它通过计算textarea的理想高度并应用CSS样式来实现这一效果,确保了性能和响应速度。 安装`react-textarea-...

    微信小程序 内容自适应textarea表单组件(autoheight_textarea)

    textarea根据内容自适应高度 组件 注意:要监听input事件改变value值 使用: &lt;autoheight_textarea value="{{value}}" placeholder="写个评论" bindinput="listenerinput"&gt;&lt;/autoheight_textarea&gt;

    flex3 textArea 高度自适应

    通过以上步骤,我们就能实现一个高度自适应的`TextArea`,确保用户始终能看到所有输入的内容,而无需手动调整大小。 在提供的压缩包文件“高度自适应的TEXTAREA”中,可能包含了实现上述功能的源代码示例。如果你...

    textarea添加背景图片并控制定位

    若想让背景图片随`textarea`内容的多少自动调整大小,可以利用`background-size`属性。例如,可以将背景图片设为完全覆盖`textarea`: ```css textarea { background-size: cover; } ``` 最后,为了确保在不同...

    JQuery实现textarea行自增减.rar

    现在,我们可以编写jQuery代码来监听textarea的`input`事件,这个事件会在textarea内容改变时触发。当textarea内容发生变化时,我们将计算新的行数并据此调整textarea的`rows`属性: ```javascript $(document)....

Global site tag (gtag.js) - Google Analytics