Подтвердить что ты не робот

Поиск Ultimate Resize Textarea

Я хочу предоставить изменение размера текстового элемента управления для пользователей. Я дал это и посмотрел на ряд других реализаций, но я не могу найти тот, который отвечает всем моим требованиям. В частности, я хочу, чтобы элемент управления:

  • Работает в IE6, IE7, IE8 на Windows и Firefox 3 и 3.5 в Windows и OS X, когда страница отображается в стандартном режиме (т.е. не в режиме quirks).
  • Не испортит буфер отмены/отмены. Это особенно неприятная проблема с добавлением IE узлов, удалением узлов и некоторыми другими операциями DOM будет reset входным буфером, означающим, что если реализация опирается на эти методы, отмена не будет вести себя так, как в стандартном элементе управления textarea. Мне не удалось найти много информации об этой ошибке, кроме этой заметки. Реализации, такие как jQuery Auto Growing Plugin, страдают от этой проблемы - попробуйте отменить изменения в IE и сравнить, как это работает со стандартным текстовым полем. Я добавил страницу примера демонстрирующую эту проблему для JSBin.
  • Максимальная высота, за которой элемент управления не может расти.
  • Устраняется при удалении содержимого.
  • Не мерцает или действует странно при нажатии клавиши. например jQuery Auto Growing Управление Textarea ведет себя странно с, по крайней мере, IE7, когда элемент управления вырос за пределы исходного размера.
  • Не требует, чтобы элемент управления использовал шрифт с фиксированной шириной/моношириной.

Ближайшее, что я видел к тому, что работает, как это, - это поле обновления статуса Facebook, которое реализовано как элемент редактирования editable, но у меня есть некоторые оговорки об использовании такого элемента, потому что использование div означает:

  • Необходимо явно создать границу, что означает, что мы можем получить границу, которая выглядит иначе, чем родная текстовая область.
  • Вам нужно синхронизировать контент с реальной текстовой областью (возможно, в обоих направлениях?).
  • Добавляет сложность при размещении подсказок и других элементов относительно положения текстового поля.
  • Хотя этот подход работает для чего-то вроде обновления статуса Facebook, насколько он будет работать в форме, содержащей сотни стандартных элементов ввода?

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

4b9b3361

Ответ 2

Вам может потребоваться сворачивать свои собственные, чтобы удовлетворить эти требования.

Это может быть начало.

http://tuckey.org/textareasizer/ (хотя старайтесь избегать eval() в вашем)

http://www.felgall.com/jstip45.htm

http://viralpatel.net/blogs/2009/06/textarea-resize-javascript-jquery-plugin-resize-textarea-html.html

Это действительно похоже на хороший плагин jQuery. Я мог бы заняться разработкой чего-то подобного. Если я это сделаю, я отправлю его здесь.

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

http://www.aclevercookie.com/demos/autogrow_textarea.html

Ответ 3

Вы хотите авторазмер дисплея? но оставить содержимое тем же?

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

Ответ 4

Этот пост в списке List содержит реализацию, которая выглядит довольно близко к вашим критериям и содержит хорошее объяснение того, что происходит.

Ответ 5

Являются ли какие-либо из этих полезных?

Textarea Изменить размер JavaScript: изменить размер текстового поля с помощью плагина jQuery

Интеллектуальная область: легкий плагин для изменения текстовой области для jQuery

Как создать плагин jQuery для автоматической разворачивания, часть 1

Как создать плагин jQuery для автоматической разворачивания, часть 2

Как создать плагин jQuery для автоматической разворачивания, часть 3

Изменчивое тело

Ответ 6

Я использовал nicEdit. Кажется, у вас есть все, что вам нужно, и script - это всего 1700 строк с лицензией MIT, чтобы вы могли внести любые изменения.