Скрываемая строка поиска

Реализация динамических и отзывчивых элементов интерфейса, таких как скрываемая строка поиска, становится значительно проще и элегантнее с использованием Vue.js. Его реактивная природа позволяет управлять состоянием компонента (например, видимостью поля) буквально в несколько строк кода, избавляя от сложных манипуляций с DOM и делая код чистым и поддерживаемым.

Убедитесь в этом сами — нажмите на значок лупы, чтобы увидеть плавное появление поисковой строки.

Ниже представлен исходный код, который реализует этот интерактивный элемент. Он наглядно демонстрирует простоту и мощь Vue.

Внимание! Представленный код — это готовый компонент, но для его работы на странице должен быть установлен и подключен фреймворк Vue. Если вы начинающий разработчик, просто добавьте строку
<script src="https://unpkg.com/vue@3/dist/vue.global.js"></script>
в раздел <head> вашего HTML, и всё заработает.

Как это работает?

  1. Логика Vue.js: Ключевой элемент — реактивная переменная isShown, которая определяет, показано ли поле ввода. При клике на кнопку вызывается метод handleBtn, который инвертирует значение isShown. Это яркий пример реактивности Vue — изменение состояния автоматически обновляет внешний вид компонента.
  2. Визуальная часть: Поле ввода input.app-input имеет начальную нулевую ширину и прозрачность. При добавлении класса .show (который привязывается к переменной isShown через директиву :class) применяются CSS-правила, плавно увеличивающие ширину поля и меняющие его прозрачность с помощью перехода transition. Это создает эффект мягкого выезда.
  3. Директива @click.prevent: Эта директива Vue слушает событие клика на кнопке. Модификатор .prevent автоматически вызывает event.preventDefault(), предотвращая перезагрузку страницы при отправке формы, что часто является желаемым поведением для таких интерактивных элементов.

Этот компонент — отличная основа, которую можно адаптировать под любой дизайн и расширить функционалом (например, отправкой поискового запроса или добавлением фильтров).

Нужен подобный интерактивный элемент для вашего сайта?

Представленный выше компонент — лишь небольшая иллюстрация наших возможностей. Мы готовы разработать для вас не только стильные UI-элементы, но и сложные веб-приложения, используя современные технологии, такие как Vue.js.

Обращайтесь в нашу веб-студию! Мы создадим интуитивно понятный, быстрый и эффективный интерфейс, который понравится вашим пользователям и решит ваши бизнес-задачи.