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); }); });
Живой пример
Привет! Было бы просто замечательно, если бы добавляли демки. Ведь всегда приятно сразу увидеть конечный результат в действии.
Нет,я не лентяй=)
В планах уже есть нечто подобное. Спасибо за замечание.
Спасибо! Как раз то что искал. Но только почему то у меня не работает в мозиле, при фокусе пропадает плейсхолдер, поле не увеличивается и писать в него нельзя =( Может знаете в чем проблема?
Пример покажите? И какая у вас версия FireFox?
Приветствую.
Искал подобное решение и пришел к вам. Только мне нужно было, чтобы это увеличение было справа налево, так как поле поиска в правом верхнем углу.
Нашел решение здесь http://thefinishedbox.com/freebies/scripts/jquery-animated-search/.
Работает в ie8, moz 21, opera 12.11, chrome 27
в старших версиях не проверял.
Удачи!
Привет, Михаил, отличный сниппет, только у меня произошла такая же проблема как у предыдущего комментатора. Можете подсказать что нужно добавить в ваш скрипт чтобы ширина изменялась справа налево? А то у меня сейчас вместе с анимацией текстового элемента, кнопка сабмит двигается..
посмотрите ссылку, что привел Александр — там решение вашей проблемы
Смотрел, но я не слишком в теме, чтобы понять что именно нужно изменить. Там не не простой скрипт, если бы знать что и где искать
Я поправил свой пример, вы так хотели?
Да, всё так. Спасибо
textarea:focus {
width: 500px;
}
И никаких сниппетов
2010 год на дворе. О CSS3 браузеры еще не знали, чтобы делать анимацию красивую
:focus в input:text для ie6 ))) я вас умоляю)))
Спасибо!