Menu
Coddy logo textTech

Анимации при клике на кнопку

Часть раздела JavaScript in Action путешествия по HTML на Coddy — урок 20 из 27.

Иногда мы хотим, чтобы кнопки давали мгновенную обратную связь при нажатии — например, уменьшались, светились или подпрыгивали. Мы можем запускать CSS-анимации или переходы с помощью JavaScript.

Сначала создайте простую кнопку в вашем HTML:

<button id="animatedButton">Click Me</button>

Затем добавьте базовый CSS, чтобы стилизовать кнопку:

#animatedButton {
  padding: 10px 20px;
  background-color: #4CAF50;
  color: white;
  border: none;
  border-radius: 4px;
  cursor: pointer;
  transition: transform 0.2s, background-color 0.2s;
}

Теперь добавьте JavaScript для создания анимации клика:

const button = document.getElementById('animatedButton');

button.addEventListener('click', function() {
  // Добавьте класс для эффекта клика
  button.classList.add('button-clicked');
  
  // Удалите класс после завершения анимации
  setTimeout(function() {
    button.classList.remove('button-clicked');
  }, 200);
});

Наконец, добавьте CSS для эффекта анимации:

.button-clicked {
  transform: scale(0.95);
  background-color: #45a049;
}

При нажатии кнопка теперь будет немного уменьшаться и менять цвет, обеспечивая визуальную обратную связь пользователю.

challenge icon

Задание

Легко

Когда кнопка нажата, добавьте ей CSS-класс "button-clicked" для визуальной обратной связи.

Добавьте строку, которая применяет этот класс, внутри слушателя события клика.

Попробуйте сами

<!DOCTYPE html>
<html>
<head>
  <title>Button Animation Example</title>
  <link rel="stylesheet" href="style.css">
</head>
<body>
  <header>
    <h1>Interactive Button Demo</h1>
    <p>Click the button below to see a smooth animation effect.</p>
  </header>

  <main class="content">
    <button id="animatedButton" class="btn">Click Me</button>
  </main>

  <script src="script.js"></script>
</body>
</html>
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела JavaScript in Action