Sha256: cd4dd631fcf0f76f2cd45f05cc87a58dbd4fcffd14a6a9f7872d61606440d284

Contents?: true

Size: 1.4 KB

Versions: 19

Compression:

Stored size: 1.4 KB

Contents

(function($) {
  /*
  * Auto-growing textareas
  */
  $.fn.autogrow = function(options) {

    this.filter('textarea').each(function() {

      var $this   = $(this),
      minHeight   = $this.height(),
      lineHeight  = $this.css('lineHeight');

      var shadow = $('<div></div>').css({
        position:   'absolute',
        top:        -10000,
        left:       -10000,
        width:      $(this).width() - parseInt($this.css('paddingLeft')) - parseInt($this.css('paddingRight')),
        fontSize:   $this.css('fontSize'),
        fontFamily: $this.css('fontFamily'),
        lineHeight: $this.css('lineHeight'),
        resize:     'none'
      }).appendTo(document.body);

      var update = function() {

        var times = function(string, number) {
          var _res = '';
          for(var i = 0; i < number; i ++) {
            _res = _res + string;
          }
          return _res;
        };

        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() + 20, minHeight));
      }

      $(this).change(update).keyup(update).keydown(update);
      update.apply(this);
    });
    return this;
  }
})(jQuery);

Version data entries

19 entries across 19 versions & 1 rubygems

Version Path
speedo-0.3.2 vendor/assets/javascripts/speedo/jquery.autogrow.js
speedo-0.3.1 vendor/assets/javascripts/speedo/jquery.autogrow.js
speedo-0.3.0 vendor/assets/javascripts/speedo/jquery.autogrow.js
speedo-0.2.5 vendor/assets/javascripts/speedo/jquery.autogrow.js
speedo-0.2.0 vendor/assets/javascripts/speedo/jquery.autogrow.js
speedo-0.1.9 vendor/assets/javascripts/jquery.autogrow.js
speedo-0.1.8 vendor/assets/javascripts/jquery.autogrow.js
speedo-0.1.7 vendor/assets/javascripts/jquery.autogrow.js
speedo-0.1.6 vendor/assets/javascripts/jquery.autogrow.js
speedo-0.1.5 vendor/assets/javascripts/jquery.autogrow.js
speedo-0.1.4 vendor/assets/javascripts/jquery.autogrow.js
speedo-0.1.3 vendor/assets/javascripts/jquery.autogrow.js
speedo-0.1.2 vendor/assets/javascripts/jquery.autogrow.js
speedo-0.1.1 vendor/assets/javascripts/jquery.autogrow.js
speedo-0.1.0 vendor/assets/javascripts/jquery.autogrow.js
speedo-0.0.8 vendor/assets/javascripts/jquery.autogrow.js
speedo-0.0.7 vendor/assets/javascripts/jquery.autogrow.js
speedo-0.0.6 vendor/assets/javascripts/jquery.autogrow.js
speedo-0.0.5 vendor/assets/javascripts/jquery.autogrow.js