• +34 685 967 885
  • +34 695 898 191
  • antgarprats@gmail.com
  • Antonio García Prats

slider de imágenes creado con bootstrap y javascript

¿Sabes crear un slider totalmente funcional para tu página web?

Mi propósito, en esta entrada de mi blog, será la de mostrarte cómo crear un slider -o carrousel de imágenes- para tu página web. Me apoyaré, para conseguir esto, en Bootstrap 5.3, HTML5, CSS3 y un poco de javascript.

1. Configuración HTML

Bootstrap 5.3 ofrece componentes de carrusel muy fáciles de usar. A continuación te muestro cómo crear la estructura HTML básica de un carrusel de imágenes con texto sobreimpreso. Este carrusel tendrá la capacidad de cambiar de imagen automáticamente y agregar el efecto “fade”.

<!DOCTYPE html>
<html lang="es">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Carrusel de imágenes</title>
  <!-- Bootstrap 5.3 CSS -->
  <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha3/dist/css/bootstrap.min.css" rel="stylesheet">
  <!-- Estilos personalizados -->
  <link rel="stylesheet" href="styles.css">
</head>
<body>

  <div id="customCarousel" class="carousel slide carousel-fade" data-bs-ride="carousel">
    <!-- Indicadores -->
    <ol class="carousel-indicators">
      <li data-bs-target="#customCarousel" data-bs-slide-to="0" class="active"></li>
      <li data-bs-target="#customCarousel" data-bs-slide-to="1"></li>
      <li data-bs-target="#customCarousel" data-bs-slide-to="2"></li>
    </ol>

    <!-- Contenido del carrusel -->
    <div class="carousel-inner">
      <!-- Primera imagen -->
      <div class="carousel-item active">
        <img src="https://via.placeholder.com/1920x600/000000/FFFFFF?text=Imagen+1" class="d-block w-100" alt="Imagen 1">
        <div class="carousel-caption d-none d-md-block">
          <h5>Título de la Imagen 1</h5>
          <p>Descripción breve de la Imagen 1.</p>
        </div>
      </div>

      <!-- Segunda imagen -->
      <div class="carousel-item">
        <img src="https://via.placeholder.com/1920x600/444444/FFFFFF?text=Imagen+2" class="d-block w-100" alt="Imagen 2">
        <div class="carousel-caption d-none d-md-block">
          <h5>Título de la Imagen 2</h5>
          <p>Descripción breve de la Imagen 2.</p>
        </div>
      </div>

      <!-- Tercera imagen -->
      <div class="carousel-item">
        <img src="https://via.placeholder.com/1920x600/888888/FFFFFF?text=Imagen+3" class="d-block w-100" alt="Imagen 3">
        <div class="carousel-caption d-none d-md-block">
          <h5>Título de la Imagen 3</h5>
          <p>Descripción breve de la Imagen 3.</p>
        </div>
      </div>
    </div>

    <!-- Controles de navegación -->
    <button class="carousel-control-prev" type="button" data-bs-target="#customCarousel" data-bs-slide="prev">
      <span class="carousel-control-prev-icon" aria-hidden="true"></span>
      <span class="visually-hidden">Anterior</span>
    </button>
    <button class="carousel-control-next" type="button" data-bs-target="#customCarousel" data-bs-slide="next">
      <span class="carousel-control-next-icon" aria-hidden="true"></span>
      <span class="visually-hidden">Siguiente</span>
    </button>
  </div>

  <!-- Bootstrap 5.3 JS -->
  <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha3/dist/js/bootstrap.bundle.min.js"></script>
</body>
</html>

Explicación del código HTML:

carousel slide: Clase básica de Bootstrap para habilitar el carrusel.

carousel-fade: Clase que activa el efecto de transición de desvanecimiento.

data-bs-ride="carousel": Activa el auto-desplazamiento de las imágenes.

carousel-caption: Contenedor del texto sobreimpreso en cada imagen.

carousel-inner: Contenedor principal de las imágenes. Cada imagen está contenida en un carousel-item.

Los indicadores y controles de navegación te permiten moverte manualmente entre las imágenes si así lo deseas.

2. Estilos CSS Personalizados

Para agregar un toque de estilo personalizado y mejorar el aspecto del carrusel, puedes agregar un archivo styles.css con los siguientes ajustes.

/* Estilos generales del carrusel */
.carousel-item img {
  height: 600px;
  object-fit: cover;
}

/* Personalización del texto sobre las imágenes */
.carousel-caption {
  background-color: rgba(0, 0, 0, 0.5); /* Fondo semitransparente para el texto */
  padding: 20px;
  border-radius: 10px;
}

/* Ajustes para mejorar la visualización en pantallas pequeñas */
@media (max-width: 768px) {
  .carousel-caption h5 {
    font-size: 1.5rem;
  }
  
  .carousel-caption p {
    font-size: 1rem;
  }
}

/* Estilo personalizado para los indicadores (puntos del carrusel) */
.carousel-indicators li {
  background-color: white;
  border-radius: 50%;
  width: 12px;
  height: 12px;
}

/* Controles de navegación (prev y next) */
.carousel-control-prev-icon,
.carousel-control-next-icon {
  filter: invert(100%);
}

Explicación del código CSS:

Altura de las imágenes: Ajustamos las imágenes para que mantengan una altura fija (600px) y se recorten según sea necesario con object-fit: cover.

Texto sobre las imágenes: El fondo del texto tiene un color semitransparente para mejorar la legibilidad sobre la imagen. Se usa rgba(0, 0, 0, 0.5) para crear el efecto de transparencia en negro.

Indicadores: Personalizamos los indicadores del carrusel para que sean círculos blancos.

Controles de navegación: Invertimos el color de los iconos de navegación para hacerlos más visibles sobre imágenes oscuras.

3. Funcionalidad automática

Bootstrap gestiona automáticamente el desplazamiento de las imágenes. Para controlar la velocidad y las transiciones automáticas, puedes agregar el siguiente código JavaScript en tu archivo HTML (aunque Bootstrap ya provee un comportamiento por defecto).

Si deseas personalizar la duración de la transición entre imágenes, puedes hacerlo así:

<script>
  const carouselElement = document.querySelector('#customCarousel');
  const carousel = new bootstrap.Carousel(carouselElement, {
    interval: 3000, // Tiempo entre diapositivas en milisegundos
    ride: 'carousel',
    pause: 'hover', // Pausa cuando el ratón pasa sobre el carrusel
    wrap: true // Permite que el carrusel se repita de forma infinita
  });
</script>

Este carrusel de imágenes con Bootstrap 5.3 y CSS3 tiene una transición automática con un efecto de fade. Soporta texto sobreimpreso, y está completamente responsive gracias a Bootstrap. Solo necesitas adaptar los enlaces de tus imágenes y ajustar los textos que desees mostrar.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *