AnDrIYQ
@AnDrIYQ
Неудачник

Как сделать плавный набор текста в input?

Что-то не могу нагуглить, как сделать анимированый набор текста в Input? То есть текст печатаеся не просто как на печатной машинке, а плавно. Есть ли какие-то CSS или JS способы так сделать? Можно и костыльные, но лучше без JQuery. Спасибо.
  • Вопрос задан
  • 861 просмотр
Решения вопроса 2
Aetae
@Aetae Куратор тега JavaScript
Тлен
Чтобы избежать головняка с contenteditable можно подложить стилизованный div под input с прозрачным текстом. Но это всё равно не будет просто, т.к. потребуется вычислять разницу состояний и анимировать именно по месту ввода.
Вот чисто концепт с анимацией только последнего символа:
Ответ написан
Комментировать
В инпате вы это не сделаете.
HTML позволяет управлять только видом отдельных элементов DOM. Символ в тексте это не элемент DOM, так что его придется в начале сделать таким.

Самый простой путь. Делаете input прозрачный поверх блока который имитирует поле ввода. При изменении текста в input сравниваете текст в нем и блоке его имитирующем. Диф этих текстов добавляете в блок обернутым в например span, с наброшенным на него любым эффектом. По завершении анимации заменяете этот span на его содержимое.

Как-то так.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
zkrvndm
@zkrvndm
Архитектор решений
На input вы это не сделайте никак, так как невозможно применить CSS-эффекты к отдельным буквам в обычном тексте, но это возможно сделать, если бы каждая вводимая буква была бы внутри элемента span. В общем, вам поможет обычный div с атрибутом contenteditable="true" стилизованный под поле ввода.

Вам нужно написать JavaScript который по мере ввода текста будет оборачивать вводимые буквы в тег span с определенным классом, к этому классу вы позже уже сможете завязать любую какую угодно анимацию.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
22 нояб. 2024, в 06:06
1500 руб./в час
22 нояб. 2024, в 06:04
1 руб./за проект
22 нояб. 2024, в 03:54
1500 руб./за проект