- Главная
- Проекты на Vue
- Волновой эффект для текста
Волновой эффект для текста
Создание динамичных и отзывчивых интерфейсов — ключ к современному веб-дизайну. С помощью такого фреймворка, как Vue.js, реализация сложных анимаций становится значительно проще и эффективнее. Vue реактивная система и декларативный подход позволяют управлять анимацией состояния элементов интуитивно и с минимумом кода.
Яркий пример — этот волновой эффект для текста в тегах label. Когда пользователь кликает на поле ввода, буквы подписи «всплывают» волной, создавая запоминающееся и плавное взаимодействие. Такой компонент отлично подойдет для форм входа или регистрации, чтобы сделать их более живыми и интерактивными.
Посмотрите на эффект в действии прямо сейчас — кликните на поля ввода ниже:
Внимание! Представленный код — это готовый компонент, но для его работы на странице должен быть установлен и подключен фреймворк Vue. Если вы начинающий разработчик, просто добавьте строку <script src="https://unpkg.com/vue@3/dist/vue.global.js"></script>
в раздел <head> вашего HTML, и всё заработает.
Как работает этот волновой эффект?
Ниже представлен код, который приводит в действие эту анимацию. Давайте разберем его основные части, чтобы понять логику работы.
HTML-структура
Основана на компоненте Vue. Форма содержит цикл v-for, который динамически создает поля ввода на основе массива inputs. Каждый label обертывает свой текст в отдельные span для каждой буквы — это ключ к поэтапной анимации.
CSS-стили
Отвечают за внешний вид и саму анимацию.
- Буквы внутри
labelизначально сдвинуты вниз на 30 пикселейtransform: translateY(30px). - Класс
.moveвозвращает их в исходное положениеtransform: translateY(0). - Магия «волны» создается с помощью динамически рассчитанной
transition-delayдля каждогоspan. Задержка вычисляется какindex * 50ms, что заставляет каждую следующую букву анимироваться с небольшим опозданием.
Логика на Vue.js (JavaScript)
Это «мозг» компонента.
- Состояние: Массив
inputsсодержит объекты для каждого поля, хранящие его имя, текстlabel, флаг активностиfocusedи значениеvalue. - Обработчик клика
handleClick: При клике в любую область формы этот метод определяет, было ли нажатие на поле ввода. - Если клик был не по полю, все флаги
focusedсбрасываются вfalse, и подписи возвращаются в исходное состояние (если поле не заполнено). - Если клик был по полю ввода, для соответствующего поля устанавливается
focused: true, что добавляет классmoveк спану букв его подписи, запуская волновую анимацию.
Использование Vue делает управление этими состояниями невероятно простым. Изменение данных в inputs автоматически обновляет DOM, активируя или деактивируя анимацию.
Хотите внедрить такие решения на своем сайте?
Этот волновой эффект — лишь один из примеров того, как креативный подход и современные технологии могут преобразить пользовательский интерфейс.
Наша веб-студия готова создать сайты, а также уникальные, интерактивные и запоминающиеся компоненты, которые выделят ваш сайт на фоне конкурентов и улучшат взаимодействие с пользователями. От сложных анимаций до удобных интерфейсов — мы воплотим ваши идеи в жизнь.
Свяжитесь с нами, чтобы обсудить ваш проект!