Нет. Это невозможно.
Если вы хотите текстовые окна, как это, то ваши ответы:
использование CSS именно так, как вы показываете
-
- сделать класс текст ящик, который рисует прямоугольник и мигающий курсор
- отслеживает, когда его щелкают, используя рукописное обнаружение столкновения
- регистрирует и отменяет регистрацию событий клавиатуры при столкновении i s обнаружен
- рисует и очищает текст, основанный на входе
- создает скорость-ограничитель, так что ключи не срабатывают слишком быстро
- прослушивает «войти» или «BackSpace» ключи, на
keyup
добавить еще строка или стереть текущий текст
- добавьте дополнительный добавочный клик в поле, когда он уже имеет «фокус», чтобы выяснить, где «курсор» (который вы изобретаете) должен быть с точки зрения строка, основанная на обнаруженной позиции клика в холсте, по сравнению с позицией прямоугольника в холсте, плюс «отступы» между начальной точкой прямоугольника и начальной точкой текста плюс вычисленная ширина строки
- , и если X и Y клика выше, чем X прямоугольника прямоугольника, плюс отступы перед началом текста, но ниже, чем X плюс плюс пробел прямоугольника, плюс ширина текста, тогда вам нужно прокрутить и измерить текст, по характеру, пока не найдете «наилучший вариант» для того, где следует учитывать «курсор» для следующего раунда редактирования ... который должен функционировать с использованием мыши и клавиатуры в качестве входов, которые вы должны создать и зарегистрировать события сам ...
Это много работы, по сравнению с CSS.
Так технически, да, вы можете сделать что-то как поле ввода, если вы готовы написать то, что может быть сотнями строк незыблемого кода, сделать то же самое, что и вы, если вы рисовали текстовый ящик с мышью/клавиатурой на пустом экране, используя только C++ ...
Но вы не можете добавлять элементы DOM и делать их частью холста, в комплекте со всеми их событиями и естественными поведения.
Есть несколько библиотек, которые могут помочь, но я не понимаю, почему вы хотите пройти всю эту работу без уважительной причины.
Вы можете взглянуть на http://raphaeljs.com/ – intelis
Последний код - как вы это сделаете. Не могли бы вы указать, почему вы не хотите его использовать? – JJJ
Я проверил http://raphaeljs.com/, но я не могу найти лучшее подходящее. Если вы уже использовали. PLS указать имя функции. – Arunkumar