Menu
Coddy logo textTech

Animaciones al hacer clic en botones

Parte de la sección JavaScript in Action del Journey de HTML de Coddy — lección 20 de 27.

A veces queremos que los botones den una respuesta instantánea al hacer clic, como encogerse, brillar o rebotar. Podemos activar animaciones o transiciones CSS usando JavaScript.

Primero, crea un botón simple en tu HTML:

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

Luego, añade un poco de CSS básico para dar estilo al botón:

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

Ahora, añade JavaScript para crear la animación de clic:

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

button.addEventListener('click', function() {
  // Añade una clase para el efecto de clic
  button.classList.add('button-clicked');
  
  // Elimina la clase después de que se complete la animación
  setTimeout(function() {
    button.classList.remove('button-clicked');
  }, 200);
});

Finalmente, añade el CSS para el efecto de animación:

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

Al hacer clic, el botón ahora se encogerá ligeramente y cambiará de color, proporcionando una respuesta visual al usuario.

challenge icon

Desafío

Fácil

Cuando se hace clic en el botón, añade la clase CSS "button-clicked" al mismo para obtener retroalimentación visual.

Añade la línea que aplica esta clase dentro del escuchador de eventos de clic.

Pruébalo tú mismo

<!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 iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de JavaScript in Action