Анимированный счетчик

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

Ниже вы можете увидеть вживую, как работает компонент Анимированный Счетчик для социальных статистик, реализованный на Vue 3 Composition API. Чтобы посмотреть еще раз — перезагрузите страницу.

{{ item.init }} {{ item.desc }}

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

Разбор кода компонента: Как это работает?

Представленный ниже код демонстрирует чистую и эффективную реализацию. Давайте разберем его по частям.

HTML-структура (Шаблон)

  1. v-for="item,i in socials": Директива Vue для рендеринга списка. Она создает блок .app__item для каждого объекта в реактивном массиве socials.
  2. {{ item.init }}: Интерполяция, отображающая текущее значение счетчика. Значение реактивно обновляется по мере анимации.
  3. :class="item.icon": Динамическое добавление CSS-класса (например, telegram) для отображения соответствующей иконки.

Стили (CSS)

  1. Адаптивная сетка: Используется display: grid с repeat(3, 250px) для трех колонок на десктопе и переходом на одну колонку (grid-template-columns: 1fr) на мобильных устройствах (@media (max-width: 768px)).
  2. Гибкие единицы измерения: Применяются clamp() для плавного изменения размера шрифта и отступов, а также vi (viewport inline) для адаптивных промежутков.
  3. Векторные иконки: Иконки вставлены как SVG через background-image в формате data:image/svg+xml, что исключает дополнительные HTTP-запросы и позволяет легко управлять цветом (fill='white').

Логика на JavaScript (Vue 3 Composition API)

  1. Реактивные данные: Массив socials объявлен через ref(). Каждый объект содержит начальное значение init, целевое total, описание и класс иконки.
  2. Хук жизненного цикла onMounted: Логика анимации запускается сразу после монтирования компонента в DOM.
  3. Механика анимации: Используется setInterval, который каждые 30 мс увеличивает значение init на 1% от целевого total (el.total / 100). Когда все счетчики достигают целевых значений, интервал очищается (clearInterval). Это создает плавный эффект инкремента.

Добавьте динамики и стиля — оживите цифры на вашем сайте!

Анимированные элементы, подобные этому счетчику, — это не просто украшение. Они удерживают внимание, наглядно демонстрируют преимущества и динамику, повышая вовлеченность пользователей.

Наша веб-студия готова воплотить в жизнь самые креативные и интерактивные идеи. От сложных анимированных интерфейсов на Javascript и Vue.js до эффективных и современных решений для вашего бизнеса. Давайте создадим что-то выдающееся вместе!

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