Ответ 1
Зебкит (ранее Зебра) довольно полный, хотя Textarea
не очень богата.
Он лицензируется с лицензией Apache 2.0.
Github для этого здесь.
Я искал библиотеку, которая может помочь в рендеринге и функциональности виджета пользовательского интерфейса, встроенных в область холста, таких как комбинированные поля, флажки, переключатели, текстовые области, списки с полосами прокрутки и т.д., без накладывая обычные HTML-элементы, плавая их поверх области холста. Flex предоставляет все это для Flash, и есть много библиотек Actionscript, которые создают компоненты виджета пользовательского интерфейса в Flash-холсте (так сказать). Эти библиотеки виджета пользовательского интерфейса хорошо служили сообществу Flash в определенных ситуациях, и это также необходимо в аналогичных ситуациях в холсте HTML5.
Кто-нибудь знает, где можно найти эти библиотеки?
Зебкит (ранее Зебра) довольно полный, хотя Textarea
не очень богата.
Он лицензируется с лицензией Apache 2.0.
Github для этого здесь.
Пока нет явных библиотек, которые я видел, но я гарантирую, что они будут сделаны когда-нибудь, хотя бы потому, что люди потребуют их (по уважительным причинам или плохо).
Спецификация Canvas HTML5 сама по себе не советует пытаться это сделать. Как говорится в спецификации:
Авторы должны избегать использования элементов управления редактированием текста с использованием элемента canvas. Это имеет большое количество недостатков:
- Необходимо переопределить расположение мыши в карете.
- Перемещение клавиатуры в каретке должно быть переопределено (возможно, в разных строках, для многострочного ввода текста).
- Прокрутка текстового поля должна быть реализована (горизонтально для длинных строк, вертикально для многострочного ввода).
- Реальные функции, такие как копирование и вставка, должны быть повторно реализованы.
- Реальные функции, такие как проверка орфографии, должны быть повторно реализованы.
- Необходимо повторить выполнение таких функций, как drag-and-drop.
- Необходимо пересмотреть внутренние функции, такие как текстовый поиск на странице.
- Собственные функции, специфичные для пользователя, например пользовательские текстовые службы, должны быть переопределены. Это почти невозможно, так как у каждого пользователя могут быть установлены разные службы, и существует неограниченный набор возможных таких сервисов.
- Двунаправленное редактирование текста должно быть переопределено.
- Для многострочного редактирования текста для всех соответствующих языков необходимо выполнить перенос строк.
- Выбор текста должен быть переопределен.
- Повторное выполнение перетаскивания двунаправленных текстовых вариантов.
- Необходимо переопределить сочетания клавиш на платформе.
- Необходимо переопределить редакторы метода на основе платформы (IME).
- Функция отмены и повтора должна быть переопределена.
- Необходимо переопределить функции доступности, такие как увеличение после каретки или выделения.
Реализация таких вещей в Canvas - это кошмар, особенно сегодня, когда один и тот же шрифт выглядит не только для браузера, но и отличается от Canvas рендерингом шрифта и браузера, отображающего шрифт.