Componente de acordeón utilizando HTML, CSS y JavaScript

Tiempo de lectura: 2 minutos

En el ejemplo muestro un componente de acordeón utilizando HTML, CSS y JavaScript.

El acordeón tiene tres secciones. Cada sección tiene un título que se puede hacer clic para mostrar u ocultar el contenido correspondiente.

El código del ejemplo es el siguiente

<!DOCTYPE html>
<html>
<head>
  <style>
    /* CSS */
    body {
      font-family: Arial, sans-serif;
      margin: 0;
      padding: 20px;
    }

    /* Estilos del acordeón */
    .accordion {
      max-width: 400px;
      margin: 0 auto;
    }

    .accordion-item {
      margin-bottom: 10px;
      border: 1px solid #ccc;
      border-radius: 5px;
      overflow: hidden;
    }

    .accordion-title {
      padding: 10px;
      background-color: #f4f4f4;
      color: #333;
      font-weight: bold;
      cursor: pointer;
    }

    .accordion-content {
      padding: 10px;
      background-color: #fff;
      display: none;
    }
  </style>
</head>
<body>
  <div class="accordion">
    <div class="accordion-item">
      <div class="accordion-title">Título DevCodeLight 1</div>
      <div class="accordion-content">Contenido del acordeón 1</div>
    </div>
    <div class="accordion-item">
      <div class="accordion-title">Título DevCodeLight 2</div>
      <div class="accordion-content">Contenido del acordeón 2</div>
    </div>
    <div class="accordion-item">
      <div class="accordion-title">Título DevCodeLight 3</div>
      <div class="accordion-content">Contenido del acordeón 3</div>
    </div>
  </div>

  <script>
    // Obtener todos los elementos del acordeón
    var accordionItems = document.querySelectorAll('.accordion-item');

    // Agregar evento de clic a cada título del acordeón
    accordionItems.forEach(function(item) {
      var title = item.querySelector('.accordion-title');
      var content = item.querySelector('.accordion-content');

      title.addEventListener('click', function() {
        // Toggle para mostrar/ocultar el contenido
        content.style.display = content.style.display === 'block' ? 'none' : 'block';

        // Cambiar el estilo del título al abrir/cerrar el acordeón
        title.classList.toggle('active');
      });
    });
  </script>
</body>
</html>

Por último, muestro el resultado.

Deja un comentario