- Главная
- Проекты на Vue
- Анимированный счетчик
Анимированный счетчик
Создание плавных, интерактивных элементов на сайте, таких как анимированный счетчик, может превратиться в сложную задачу. Однако с использованием современного фреймворка Vue.js этот процесс становится интуитивно понятным и эффективным. Vue позволяет легко связывать данные с DOM, управлять состоянием и создавать впечатляющую анимацию с минимальными усилиями. Компонентный подход обеспечивает чистоту, переиспользуемость и простоту поддержки кода.
Ниже вы можете увидеть вживую, как работает компонент Анимированный Счетчик для социальных статистик, реализованный на Vue 3 Composition API. Чтобы посмотреть еще раз — перезагрузите страницу.
Внимание! Представленный код — это готовый компонент, но для его работы на странице должен быть установлен и подключен фреймворк Vue. Если вы начинающий разработчик, просто добавьте строку <script src="https://unpkg.com/vue@3/dist/vue.global.js"></script>
в раздел <head> вашего HTML, и всё заработает.
Разбор кода компонента: Как это работает?
Представленный ниже код демонстрирует чистую и эффективную реализацию. Давайте разберем его по частям.
HTML-структура (Шаблон)
v-for="item,i in socials": Директива Vue для рендеринга списка. Она создает блок.app__itemдля каждого объекта в реактивном массивеsocials.{{ item.init }}: Интерполяция, отображающая текущее значение счетчика. Значение реактивно обновляется по мере анимации.:class="item.icon": Динамическое добавление CSS-класса (например,telegram) для отображения соответствующей иконки.
Стили (CSS)
- Адаптивная сетка: Используется
display: gridсrepeat(3, 250px)для трех колонок на десктопе и переходом на одну колонку (grid-template-columns: 1fr) на мобильных устройствах (@media (max-width: 768px)). - Гибкие единицы измерения: Применяются
clamp()для плавного изменения размера шрифта и отступов, а такжеvi(viewport inline) для адаптивных промежутков. - Векторные иконки: Иконки вставлены как SVG через
background-imageв форматеdata:image/svg+xml, что исключает дополнительные HTTP-запросы и позволяет легко управлять цветом (fill='white').
Логика на JavaScript (Vue 3 Composition API)
- Реактивные данные: Массив
socialsобъявлен черезref(). Каждый объект содержит начальное значениеinit, целевоеtotal, описание и класс иконки. - Хук жизненного цикла
onMounted: Логика анимации запускается сразу после монтирования компонента в DOM. - Механика анимации: Используется
setInterval, который каждые 30 мс увеличивает значениеinitна 1% от целевогоtotal(el.total / 100). Когда все счетчики достигают целевых значений, интервал очищается (clearInterval). Это создает плавный эффект инкремента.
Добавьте динамики и стиля — оживите цифры на вашем сайте!
Анимированные элементы, подобные этому счетчику, — это не просто украшение. Они удерживают внимание, наглядно демонстрируют преимущества и динамику, повышая вовлеченность пользователей.
Наша веб-студия готова воплотить в жизнь самые креативные и интерактивные идеи. От сложных анимированных интерфейсов на Javascript и Vue.js до эффективных и современных решений для вашего бизнеса. Давайте создадим что-то выдающееся вместе!
Свяжитесь с нами — и мы разработаем уникальные компоненты, которые выделят ваш сайт среди конкурентов.