пн-пт 9:00 — 18:00
г. Тула, ул. Некрасова, 7, оф. 315
Счётчик количества товара: кнопка +/– с анимацией и валидацией (HTML + CSS + JS)

Счётчик количества товара: кнопка +/– с анимацией и валидацией (HTML + CSS + JS)

Owebs
26 марта
Просмотры 3164
Рейтинг
Время чтения Время чтения: 9 минут

На любом интернет-магазине кнопка «+/–» в карточке товара — это не просто элемент, а конвертер. По данным Яндекс.Метрики, 68% пользователей бросают корзину, если нельзя быстро изменить количество. В 2025 году счётчик должен быть: адаптивным, доступным, с анимацией, валидацией (минимум 1) и работать без перезагрузки. Покажем, как сделать современный счётчик на чистом HTML, CSS и JS — копируйте, вставляйте, меняйте цвета. Полный код, демо, вариации и чек-лист.

Счётчик количества товара Счётчик в реальном магазине

Как работает счётчик

Пользователь нажимает «+» — количество растёт. Нажимает «–» — падает до 1. При 1 кнопка «–» становится серой (класс .min). Всё плавно, без JS-фреймворков. Адаптивно: на мобильных кнопки крупнее, на десктопе — компактно.

HTML: минимальная разметка

<div class="quantity">
  <button class="quantity__btn quantity__btn--minus min" type="button" aria-label="Уменьшить">-</button>
  <input class="quantity__input" type="text" value="1" readonly>
  <button class="quantity__btn quantity__btn--plus" type="button" aria-label="Увеличить">+</button>
</div>

CSS: стиль + анимация

.quantity {
  display: flex;
  align-items: center;
  gap: 8px;
  font-family: Helvetica, sans-serif;
}

.quantity__btn {
  width: 36px;
  height: 36px;
  background: #35e201;
  color: #fff;
  border: none;
  border-radius: 6px;
  font-weight: 600;
  font-size: 18px;
  cursor: pointer;
  transition: all 0.2s ease;
  display: flex;
  align-items: center;
  justify-content: center;
}

.quantity__btn:hover {
  background: #2cc700;
  transform: scale(1.05);
}

.quantity__btn.min {
  background: #989797;
  cursor: not-allowed;
}

.quantity__btn.min:hover {
  background: #989797;
  transform: none;
}

.quantity__input {
  width: 60px;
  height: 36px;
  text-align: center;
  font-weight: 700;
  font-size: 16px;
  border: 1px solid #ddd;
  border-radius: 6px;
  background: #fff;
}

/* Адаптивность */
@media (max-width: 480px) {
  .quantity__btn,
  .quantity__input {
    width: 44px;
    height: 44px;
    font-size: 20px;
  }
  .quantity__input {
    width: 70px;
  }
}

JS: логика и валидация

document.querySelectorAll('.quantity').forEach(counter => {
  const input = counter.querySelector('.quantity__input');
  const minus = counter.querySelector('.quantity__btn--minus');
  const plus = counter.querySelector('.quantity__btn--plus');

  plus.addEventListener('click', () => {
    let value = parseInt(input.value);
    input.value = ++value;
    if (value > 1) minus.classList.remove('min');
  });

  minus.addEventListener('click', () => {
    let value = parseInt(input.value);
    if (value > 1) {
      input.value = --value;
      if (value === 1) minus.classList.add('min');
    }
  });
});

Вариации: 3 стиля под ваш бренд

Стиль Цвет Когда использовать
Зелёный #35e201 Экология, здоровье
Синий #007bff Техника, финансы
Красный #e74c3c Акции, распродажи

Чек-лист: ваш счётчик готов

  • Работает на мобильных и десктопе
  • Кнопка «–» неактивна при 1
  • Анимация при наведении
  • ARIA-метки для скринридеров
  • Не ломает верстку при любом количестве
  • JS не конфликтует с другими счётчиками

Часто задаваемые вопросы

Можно без JS?

Нельзя. Нужна валидация. Альтернатива — <input type="number">, но UX хуже.

Как передать в корзину?

Добавьте data-product-id="123" и отправляйте через fetch.

Хотите счётчик под ваш бренд? Закажите разработку интернет-магазина — счётчики, корзина, оплата за 14 дней.

Ow
Имя:
Комментарий:
Развернуть все Скрыть
Декор Декор

Популярные Популярные

Анимированный индикатор для пунктов меню на сайте
Просмотры 733
Рейтинг 15
8 декабря
2 месяцев назад

Расскажем как написать анимированный индикатор для пунктов меню на сайте. Так портал станет более интерактивным и привлекательным для пользователей.

Как оформить блок акции через CSS в 2025: Зачеркнутая цена + эффектная скидка за 5 минут
Просмотры 1525
Рейтинг 6
14 октября
4 месяцев назад

В данном уроке будем стилизовать текст для объявлений об акции. Необходимо сделать так, чтобы наше объявление привлекло потенциальных покупателей

Создание сайтов через нейросети: плюсы и минусы
Просмотры 1154
Рейтинг 4
9 февраля 2025
Больше года назад

Популярность нейросетей в 2025 году набирает обороты. Нет, они не заменяют полноценных специалистов. Зато существенно упрощают и ускоряют работу тех же копирайтеров, сеошников и дизайнеров.

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

Оставьте заявку СЕЙЧАС

Поставив галочку, Вы даете согласие на обработку ваших Персональных данных