Как стать автором
Обновить

Комментарии 21

Временная страничка плагина figovo.ru/.

Не работает. Где посмотреть-то на Ваше творение?
Прошу прощения, ошибся. ссылку поправил.
Прошу прощения, ошибся. ссылку поправил.
пардон что не в тему, но
подскажите плиз, как получить средствами джикуери выделенный текст в текстареа?
а то и на форумах молчат :(
А можно пожелание?
Как-то можно ограничить расползание текстарии по вертикали? Опционально, конечно.
Например, чтоб текстарея не расползалась больше, чем на высоту экрана.
Ничего не мешает так сделать. Добавлю в следующей версии, иными словами, вечерком, после работы =)
Хотя цель была именно не допустить два вертикальных скролла в одном окне.
От горизонтального скроллинга практически полностью спасает автоперенос.
Зачем так много и так сложно? По таймеру обновлять высоту всех элементов? Т. е. если я ничего непишу, то скрипт всё равно работает?

Я пользуюсь вот этим:

$(document).ready(function(){

	$.extend($.fn, {

		textareaResizer: function( hParams ){
			$( this ).each(function(){

				var iRows = $( this ).attr( 'rows' );
				$( this )
					.css( 'overflow', 'hidden' )
					.keyup( resize )
					.keydown( resize )

				function resize(){
					var iLines = $( this ).val().split( /\n/ ).length;
					iLines = iLines < iRows ? iRows : iLines + 1;
					$( this ).attr( 'rows', iLines );
				}

			});
			return this;
		}

	});

});


И вызов, соответственно:

$( 'textarea' ).textareaResizer();
Если не учитывать, что этот вариант вообще не работает… т. е., при переносе длинных строк, поле не разъезжается.
И я провёл тесты, при активной печати и событиях keyup, keypress и keydown, загрузка процессора была выше, чем тихий процесс работающий по таймеру. Тем паче, что он работает только, когда поле ввода активно, т. е. в нерабочем состоянии у нас тишина и покой. Плюс мы исключаем абсолютно любые ситуации, когда поле может не растянуться, например, при вставке текста правой кнопкой мыши.
Точно, у меня textarea широкая и не сталкивался просто с длинными строками без переносов. Ну, специфика такая тут. )
И, кстати, действительная высота строки для textarea в IE не всегда равна высоте Row.
Не понял (
textarea { line-height:23px; }, а высота одной строки (textarea rows=«4» ....) в IE будет 20px т. е., в вашем варианте, текст через несколько строк перестанет вмещаться.
А, ясно. Спасибо!
супер
попробую
сейчас в проекте для этих целей использую плагин jgrow
jGrow имеет два минуса. Во-первых, не умеет ужиматься, при удалении текста, а во-вторых, при заданном line-height отличным от умолчания, в ИЕ работать будет неправильно.
Firefox 3.0.3 при вставке длинной строки, превышающей длину поля не происходит перенос. Строка вместе с курсором уходит за пределы текстэриа. Хром — полет нормальный.
Это бага фича Firefox. И я подозреваю, что имеется ввиду строка без разрывных пробелов, т. е. иными словами флуд редкий частный случай.
Ну, не такой уж и редкий, в маленьких текстэриах камментов часто постят длинные ссылки. Извените за придирки, плагин действительно стоящий, отличная работа.
Эх, отвязал бы кто :))
непростой для меня JS…
Я попытался подключить твой плагин с использованием google.load и jQuery.getScript — примерно так:
google.load("jquery", "1.2.6");
google.setOnLoadCallback(function() {
	$.getScript("/jquery.ata.js", function() {
		$('textarea').ata();
	});
});

И в таком виде он при загрузке оставляет textarea высотой 0px. Судя по всему, не срабатывает
	jQuery(function(){
		t.heightUpdate()
	});
— ибо страница-то уже загрузилась.

Я заменил эти три строки на просто вызов
	t.heightUpdate();
— и так вроде нормально работает.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Изменить настройки темы

Истории