back to top

Animazione Hover con HTML e CSS

Oggi parliamo di una delle animazioni più belle e semplici da implementare: l’effetto hover con HTML e CSS. Con questo approccio, possiamo creare animazioni fluide e visivamente accattivanti senza una sola riga di JavaScript. L’effetto hover aiuta a dare vita a un sito web, migliorando l’esperienza utente e rendendo l’interazione più interessante. In questa guida, ti mostrerò come replicare un fantastico effetto hover utilizzando solamente HTML e CSS.

Struttura HTML di Base

La struttura HTML per questo effetto hover è piuttosto semplice. Consiste in una serie di elementi div che rappresentano delle “card” con un’immagine e una descrizione. Ogni card ha un’immagine e un contenuto descrittivo che si anima quando l’utente vi passa sopra.

Ecco il codice HTML che useremo:

<div class="container">
  <div class="box">
    <div class="imgBox">
      <img src="logo_black.jpg" alt="Logo in Black">
    </div>
    <div class="content">
      <h2>CyberAlchimista<br><span>Graphic Designer</span></h2>
    </div>
  </div>

  <div class="box">
    <div class="imgBox">
      <img src="logo_color.jpg" alt="Logo in Color">
    </div>
    <div class="content">
      <h2>CyberAlchimista<br><span>Web Developer</span></h2>
    </div>
  </div>

  <div class="box">
    <div class="imgBox">
      <img src="logo_white.jpg" alt="Logo in White">
    </div>
    <div class="content">
      <h2>CyberAlchimista<br><span>UX / UI Designer</span></h2>
    </div>
  </div>
</div>
  • Container: Contiene tutte le “box” (card).
  • Box: Rappresenta ogni card.
  • imgBox: Contiene l’immagine di ciascuna card.
  • Content: Contiene il testo descrittivo per ogni card.

Stile CSS e Animazione Hover

Per rendere l’effetto hover funzionale e visivamente interessante, dobbiamo aggiungere del CSS per gestire le animazioni e le transizioni. Lo stile CSS crea un effetto di movimento dove, quando si passa sopra una card, l’immagine e il contenuto si spostano in direzioni opposte, dando un senso di profondità e interattività.

Ecco il codice CSS per ottenere questo effetto:

/* Reset di base e setup generale */
*, *::after, *::before {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

html {
  font-size: 62.5%;
}

body {
  width: 100vw;
  min-height: 100vh;
  background-color: #242323;
  font-family: "Poppins", sans-serif;
  display: flex;
  justify-content: center;
  align-items: center;
}

/* Stile per il container e le box */
.container {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
}

.container .box {
  position: relative;
  width: 30rem;
  height: 30rem;
  margin: 4rem;
  transition: all 0.5s ease-in-out;
}

/* Stile per l'animazione hover */
.container .box:hover .imgBox {
  transform: translate(-3.5rem, -3.5rem);
}

.container .box:hover .content {
  transform: translate(3.5rem, 3.5rem);
}

/* Stile dell'immagine e della descrizione */
.imgBox {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 2;
  transition: all 0.5s ease-in-out;
}

.imgBox img {
  width: 30rem;
  height: 30rem;
  object-fit: cover;
}

.content {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  padding: 1.5rem;
  display: flex;
  justify-content: center;
  background-color: #fff;
  z-index: 1;
  align-items: flex-end;
  text-align: center;
  transition: 0.5s ease-in-out;
}

.content h2 {
  font-size: 2rem;
  color: #111;
  font-weight: 500;
}

.content span {
  color: #555;
  font-size: 1.4rem;
  font-weight: 300;
}

Spiegazione del Codice CSS

  • Transizioni Sull’Hover: Ogni volta che si passa con il mouse su una delle box, l’immagine (imgBox) e il contenuto (content) si muovono in direzioni opposte grazie alle proprietà transform: translate(). Questo crea un effetto di movimento parallelo che simula una sorta di profondità.
  • Effetto di Sovrapposizione: Utilizzando la proprietà z-index, l’immagine (imgBox) viene posizionata sopra al contenuto (content). Durante l’animazione, le immagini e i contenuti si scambiano grazie al movimento e all’uso di z-index.

Vantaggi dell’Effetto Hover con HTML e CSS

  • Performance: Essendo realizzato interamente con HTML e CSS, questo effetto non richiede JavaScript, il che migliora le prestazioni e riduce il carico del sito.
  • Accessibilità: L’uso di un semplice effetto visivo migliora l’esperienza utente, facendo capire immediatamente quali elementi sono interattivi.
  • Flessibilità: Questo tipo di animazione può essere facilmente adattato e modificato per diverse situazioni, rendendolo ideale per landing page, portfoli, e e-commerce.

Conclusioni

Le animazioni hover come questa rappresentano una soluzione semplice ma efficace per migliorare la navigazione e l’estetica del tuo sito. La loro implementazione richiede solo HTML e CSS, il che le rende accessibili anche per chi ha conoscenze base di sviluppo web. Con un tocco di creatività e qualche piccola personalizzazione, puoi usare queste animazioni per creare una esperienza unica e coinvolgente per i tuoi utenti.


Hai trovato utile questo Articolo? Continua a seguire Cyberalchimista sui social (@cyberalchimista) per altri tutorial e consigli sullo sviluppo web! Se hai domande o vuoi condividere i tuoi progetti contattaci.

Condividi

Articoli Recenti

Categorie popolari