mirror of
https://github.com/friendica/friendica
synced 2024-12-27 22:42:18 +00:00
46 lines
1.4 KiB
JavaScript
46 lines
1.4 KiB
JavaScript
|
(function($) {
|
||
|
|
||
|
/*
|
||
|
* Auto-growing textareas; technique ripped from Facebook
|
||
|
*/
|
||
|
$.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(),
|
||
|
fontSize: $this.css('fontSize'),
|
||
|
fontFamily: $this.css('fontFamily'),
|
||
|
lineHeight: $this.css('lineHeight'),
|
||
|
resize: 'none'
|
||
|
}).appendTo(document.body);
|
||
|
|
||
|
var update = function() {
|
||
|
|
||
|
var val = this.value.replace(/</g, '<')
|
||
|
.replace(/>/g, '>')
|
||
|
.replace(/&/g, '&')
|
||
|
.replace(/\n/g, '<br/>');
|
||
|
|
||
|
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);
|