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

efectos hover con bootstrap

Tarjetas con efecto hover usando bootstrap

Para crear un efecto de tarjetas impactante usando Bootstrap y un diseño de cuadrícula con efectos de hover, te propongo un diseño que cuenta con una animación al pasar el ratón sobre cada tarjeta, ampliando la imagen y mostrando una capa de información sobre ella. Esto se puede lograr con HTML, CSS y un poco de JavaScript para un efecto opcional de desplazamiento.

Estructura del Código

HTML: Definimos las tarjetas en una cuadrícula de Bootstrap.

CSS: Aplicamos estilos personalizados para el efecto de hover.

JavaScript/jQuery: Opcional, para añadir una animación de desplazamiento suave si se desea.

Código HTML

<!DOCTYPE html>
<html lang="es">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Tarjetas Impactantes</title>
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet">
    <link rel="stylesheet" href="styles.css">
</head>
<body>
    <div class="container my-5">
        <div class="row">
            <!-- Tarjeta 1 -->
            <div class="col-md-4 mb-4">
                <div class="card-custom">
                    <div class="card-image">
                        <img src="https://via.placeholder.com/300" alt="Imagen 1">
                        <div class="overlay">
                            <h5>Tarjeta 1</h5>
                            <p>Descripción impactante sobre esta tarjeta.</p>
                        </div>
                    </div>
                </div>
            </div>
            <!-- Tarjeta 2 -->
            <div class="col-md-4 mb-4">
                <div class="card-custom">
                    <div class="card-image">
                        <img src="https://via.placeholder.com/300" alt="Imagen 2">
                        <div class="overlay">
                            <h5>Tarjeta 2</h5>
                            <p>Otra descripción impresionante.</p>
                        </div>
                    </div>
                </div>
            </div>
            <!-- Tarjeta 3 -->
            <div class="col-md-4 mb-4">
                <div class="card-custom">
                    <div class="card-image">
                        <img src="https://via.placeholder.com/300" alt="Imagen 3">
                        <div class="overlay">
                            <h5>Tarjeta 3</h5>
                            <p>Texto que atrae la atención aquí.</p>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>

    <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
    <script src="scripts.js"></script>
</body>
</html>

    Código CSS

    Este archivo define los efectos de hover y personaliza el diseño de las tarjetas.

    /* Estilos para tarjetas personalizadas */
    .card-custom {
        position: relative;
        overflow: hidden;
        border-radius: 10px;
        transition: transform 0.3s;
        box-shadow: 0 5px 15px rgba(0, 0, 0, 0.3);
    }
    
    .card-custom:hover {
        transform: scale(1.05);
    }
    
    .card-image {
        position: relative;
        width: 100%;
        height: 100%;
    }
    
    .card-image img {
        width: 100%;
        height: auto;
        transition: transform 0.5s ease;
    }
    
    .card-custom:hover img {
        transform: scale(1.2);
    }
    
    .overlay {
        position: absolute;
        top: 0;
        left: 0;
        right: 0;
        bottom: 0;
        background-color: rgba(0, 0, 0, 0.6);
        color: #fff;
        opacity: 0;
        display: flex;
        align-items: center;
        justify-content: center;
        flex-direction: column;
        text-align: center;
        transition: opacity 0.3s;
        padding: 20px;
    }
    
    .card-custom:hover .overlay {
        opacity: 1;
    }
    
    .overlay h5 {
        margin: 0;
        font-size: 1.5rem;
        font-weight: bold;
    }
    
    .overlay p {
        margin-top: 10px;
        font-size: 1rem;
        opacity: 0.8;
    }

    Código Javascript

    Para añadir una animación de desplazamiento suave cuando el usuario hace clic en una tarjeta, podemos usar el siguiente código en jQuery. Este es opcional y depende del efecto que quieras lograr.

    $(document).ready(function() {
        $('.card-custom').on('click', function() {
            $('html, body').animate({
                scrollTop: $(this).offset().top
            }, 800);
        });
    });

    Explicación de los efectos

    Escala en Hover: La tarjeta se amplía ligeramente (scale(1.05)) al pasar el ratón sobre ella.

    Escala de Imagen: La imagen dentro de la tarjeta se amplía (scale(1.2)) y proporciona un efecto de «zoom».

    Capa de Overlay: Aparece una capa de color oscuro sobre la imagen cuando el usuario pasa el ratón, revelando el título y la descripción de la tarjeta.

    Desplazamiento Suave (Opcional): Añade un desplazamiento suave al hacer clic en la tarjeta, desplazando la página hacia la tarjeta seleccionada.

      Este código es compatible con Bootstrap 5 y puede adaptarse a múltiples usos dentro de un proyecto web. Si tienes interés en conocer más trucos sobre programación web te invito a que visites mi página web, la de linkedin, mis redes sociales o mi newsletter en linkedin. Únete a mis redes sociales y, si te gusta mi contenido, compartelo.

      Deja una respuesta

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