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

efecto hover clásico

Efecto hover clásico

El efecto hover es una técnica de interacción visual utilizada en el diseño web que se activa cuando un usuario posiciona el cursor sobre un elemento de la página. Este efecto es parte del modelo de interacción en interfaces gráficas y es especialmente útil para proporcionar retroalimentación visual, indicando que un elemento es interactivo o destacando información adicional. Os invito a compartir un efecto hover clásico para vuestros sitios web.

¿En qué consiste?

El efecto hover generalmente implica un cambio en las propiedades visuales de un elemento, como:

Cambio de color: Modificar el color de texto o fondo.

Transformaciones: Escalar, rotar o mover un elemento.

Sombra o brillo: Aplicar sombras dinámicas o efectos de resplandor.

Transiciones suaves: Añadir animaciones para hacer los cambios más agradables a la vista.

El efecto hover se logra principalmente con CSS utilizando el pseudoclase :hover, que se aplica al estado de un elemento cuando el cursor está sobre él.

Origen del efecto hover

El concepto de hover comenzó a aparecer con los primeros navegadores compatibles con hojas de estilo en cascada (CSS) durante la segunda mitad de los años 90. La pseudoclase :hover fue introducida en CSS 2.1 (1998) y ha evolucionado con el tiempo para admitir animaciones y transiciones avanzadas, especialmente desde la llegada de CSS3 en 2011.

Variantes del efecto hover

Cambios básicos:

– Modificar colores de texto o fondo.

– Subrayar enlaces o cambiar su estilo.

Animaciones avanzadas:

– Transformaciones como rotar, escalar o desplazar elementos.

– Animaciones con transiciones suaves.

Hover combinados: Usar hover junto con JavaScript para activar cambios más complejos, como mostrar elementos ocultos o activar eventos.

Efectos 3D: Ilusiones tridimensionales usando transformaciones avanzadas.

Código básico de un efecto hover

El siguiente ejemplo cambia el color de fondo de un botón al pasar el mouse:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Efecto Hover Básico</title>
    <style>
        .btn {
            padding: 10px 20px;
            background-color: #007bff;
            color: white;
            border: none;
            border-radius: 5px;
            transition: background-color 0.3s ease;
        }

        .btn:hover {
            background-color: #0056b3;
        }
    </style>
</head>
<body>
    <button class="btn">Pasa el mouse</button>
</body>
</html>

Explicación:

1.btn define el estilo inicial del botón.

2.btn:hover cambia el color de fondo cuando el mouse está sobre el botón.

3 .transition añade suavidad al cambio.

¿Cuándo es apropiado utilizar el efecto hover?

El efecto hover es útil en varios escenarios:

Destacar elementos interactivos:

– Enlaces, botones, menús y tarjetas.

– Guía visual para mejorar la usabilidad.

Enriquecer la experiencia visual: Crear animaciones atractivas que mejoren la percepción de calidad.

Prototipos y navegación: Resaltar rutas o elementos clave en sitios complejos.

Evitar en:

Dispositivos táctiles: El efecto hover no funciona en pantallas táctiles, ya que no hay cursor. Para estos casos, es mejor proporcionar alternativas como toques o clics.

Elementos no interactivos: Para evitar confundir al usuario.

¿Por qué usar el efecto hover?

El efecto hover no solo mejora la estética de un sitio web, sino que también:

– Proporciona una experiencia interactiva intuitiva.

– Refuerza la jerarquía visual, destacando elementos importantes.

– Mejora la percepción de calidad y modernidad en el diseño.

Descripción del efecto

El card tendrá los siguientes elementos:

1. Imagen de fondo: Ocupa toda la parte superior del card.

2. Texto descriptivo y título: Añadidos de forma clara y estilizada.

3. Botón centrado en la parte inferior: Para acciones como «Leer más».

El efecto hover:

– La imagen se ampliará ligeramente con una suave transición.

– El texto y el botón aparecerán con una animación sutil, incrementando su opacidad.

– Todo el card tendrá una sombra dinámica que se intensifica al hacer hover.

Código HTML, CSS y JavaScript

HTML

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Card Hover Effect with Button</title>
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css">
    <link rel="stylesheet" href="styles.css">
</head>
<body>
    <div class="container mt-5 d-flex justify-content-center">
        <div class="card hover-card">
            <div class="card-img">
                <img src="https://via.placeholder.com/300x200" alt="Card Image" class="img-fluid">
            </div>
            <div class="card-body text-center">
                <h5 class="card-title">Título del Card</h5>
                <p class="card-text">Descripción breve del contenido que aparece aquí.</p>
                <button class="btn custom-hover-btn">Leer más</button>
            </div>
        </div>
    </div>
    <script src="script.js"></script>
</body>
</html>

CSS

/* styles.css */
body {
    background-color: #f8f9fa;
    font-family: Arial, sans-serif;
}

/* Card styles */
.card.hover-card {
    width: 300px;
    border: none;
    overflow: hidden;
    border-radius: 10px;
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
    transition: box-shadow 0.3s ease-in-out;
    position: relative;
}

.card.hover-card:hover {
    box-shadow: 0 8px 15px rgba(0, 0, 0, 0.3);
}

.card-img {
    overflow: hidden;
    height: 200px;
}

.card-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.5s ease-in-out;
}

.card.hover-card:hover .card-img img {
    transform: scale(1.1);
}

.card-body {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    padding: 20px;
    background: rgba(255, 255, 255, 0.9);
    opacity: 0;
    transform: translateY(30px);
    transition: opacity 0.5s ease, transform 0.5s ease;
}

.card.hover-card:hover .card-body {
    opacity: 1;
    transform: translateY(0);
}

.card-title, .card-text {
    margin-bottom: 10px;
}

/* Custom Button Hover Effect */
.custom-hover-btn {
    background: linear-gradient(to right, #007bff, #0056b3);
    color: #fff;
    border: 2px solid transparent;
    border-radius: 30px;
    padding: 10px 20px;
    font-weight: bold;
    transition: all 0.4s ease;
}

.custom-hover-btn:hover {
    background: linear-gradient(to right, #0056b3, #007bff);
    border-color: #fff;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);
    transform: translateY(-3px);
}

JavaScript

// script.js

// Verifica si el navegador soporta IntersectionObserver para mejorar la interacción
document.addEventListener('DOMContentLoaded', () => {
    const cards = document.querySelectorAll('.hover-card');

    cards.forEach((card) => {
        card.addEventListener('mouseover', () => {
            card.classList.add('active');
        });

        card.addEventListener('mouseout', () => {
            card.classList.remove('active');
        });
    });
});

Este código te proporcionará un efecto hover muy elegante en las cards que crees con la libreria CSS Bootstrap.

Deja una respuesta

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