Время для прочтения: 1 мин. 3 сек.

jQuery сниппеты: увеличение поля ввода при получении фокуса

Представим себе ситуацию, когда у нас есть красивая форма фиксированной ширины. В форме есть тег textarea, который вмещает в себя, допустим, 1000 символов. По умолчанию, видна лишь часть текста в этом теге. Но нам хочется просмотреть весь этот текст. Добавим немного jQuery, заставив это поле увеличиваться по ширине при получении фокуса.

Допустим, у нас на странице есть элемент textarea:

<form>
	<textarea></textarea>
</form>

Изначально этот элемент имеет размеры 250px x 125px

textarea {
    width: 250px;
    height: 125px;
}

Чтобы заставить это поле ввода при получении фокуса изменить свою ширину, используем простенький сниппет:

$(function() {
    $("textarea").focus(function(){
        $(this).width(500);
    }).blur(function(){
        $(this).width(250);
    });
});

«Причесав» немного наш сниппет, добавив анимации, получим плавное увеличение ширины:

$(function() {
    $("textarea").focus(function(){
        $(this).animate({ width:"500px"}, 1000);
    }).blur(function(){
        $(this).animate({ width:"250px"}, 500);
    });
});

Живой пример

1

Пошерить
Плюсануть
Отправить
Вотсапнуть

Добавить комментарий

Такой e-mail уже зарегистрирован. Воспользуйтесь формой входа или введите другой.

Вы ввели некорректные логин или пароль

Извините, для комментирования необходимо войти.

1. Нажимая на кнопку "Отправить", я даю согласие на обработку персональных данных.

2. Для вставки кода используйте специальные теги [code lang="php"]ваш код[/code]

13 комментариев

сначала новые
по рейтингу сначала новые по хронологии
Горожанин

textarea:focus {
width: 500px;
}
И никаких сниппетов

:focus в input:text для ie6 ))) я вас умоляю)))

2010 год на дворе. О CSS3 браузеры еще не знали, чтобы делать анимацию красивую

Алексей

Привет, Михаил, отличный сниппет, только у меня произошла такая же проблема как у предыдущего комментатора. Можете подсказать что нужно добавить в ваш скрипт чтобы ширина изменялась справа налево? А то у меня сейчас вместе с анимацией текстового элемента, кнопка сабмит двигается..

Автор
Кобзарёв Михаил

посмотрите ссылку, что привел Александр - там решение вашей проблемы

Алексей

Смотрел, но я не слишком в теме, чтобы понять что именно нужно изменить. Там не не простой скрипт, если бы знать что и где искать

Автор
Кобзарёв Михаил

Я поправил свой пример, вы так хотели?

Алексей

Да, всё так. Спасибо

Приветствую.

Искал подобное решение и пришел к вам. Только мне нужно было, чтобы это увеличение было справа налево, так как поле поиска в правом верхнем углу.

Нашел решение здесь http://thefinishedbox.com/freebies/scripts/jquery-animated-search/.

Работает в ie8, moz 21, opera 12.11, chrome 27

в старших версиях не проверял.

Удачи!

Спасибо! Как раз то что искал. Но только почему то у меня не работает в мозиле, при фокусе пропадает плейсхолдер, поле не увеличивается и писать в него нельзя =( Может знаете в чем проблема?

Автор
Кобзарёв Михаил

Пример покажите? И какая у вас версия FireFox?

Привет! Было бы просто замечательно, если бы добавляли демки. Ведь всегда приятно сразу увидеть конечный результат в действии.

Нет,я не лентяй=)

Автор
Кобзарёв Михаил

В планах уже есть нечто подобное. Спасибо за замечание.