CSS animation-timing-function
La proprietà CSS3 animation-timing-function definisce la curva temporale dell'animazione
La proprietà animation-timing-function consente di definire la velocità con cui un'animazione cambia durante il suo ciclo. Usando valori come ease, linear, ease-in, ease-out, ease-in-out, oppure una funzione personalizzata tramite cubic-bezier(), è possibile creare animazioni più fluide e naturali, adattando il ritmo al comportamento desiderato dell'animazione.
Sintassi
Significato dei valori principali:
-
ease: valore predefinito, rende l'animazione più lenta all'inizio e alla fine, ma più veloce al centro.
-
linear: l'animazione ha una velocità costante per tutta la durata.
-
ease-in: l'animazione inizia lentamente e poi accelera.
-
ease-out: l'animazione inizia velocemente e poi rallenta.
-
ease-in-out: l'animazione inizia lentamente, accelera al centro e poi rallenta di nuovo alla fine.
-
cubic-bezier(x1, y1, x2, y2): consente di definire una curva temporale personalizzata, creando effetti unici di animazione.
Esempio proprietà: animation-timing-function
Codice Esempio: animation-timing-function
<!DOCTYPE html><html lang="it"><head><meta charset="UTF-8"><title>Demo: animation-timing-function con cubic-bezier</title>
<style>body {font-family: sans-serif;
padding: 30px;
background: #f9f9f9;
max-width: 700px;
margin: auto;
}
h2 {text-align: center;
margin-bottom: 40px;
}
.row {margin-bottom: 40px;
}
.label {font-weight: bold;
font-size: 14px;
margin-bottom: 8px;
}
.track {position: relative;
height: 20px;
background: #ddd;
border-radius: 10px;
overflow: hidden;
}
.box {width: 20px;
height: 20px;
background-color: #0077cc;
border-radius: 50%;
position: absolute;
top: 0;
left: 0;
animation-name: slide;
animation-duration: 3s;
animation-fill-mode: both;
}
/* Timing custom con cubic-bezier */
.cb1 { animation-timing-function: cubic-bezier(0, 0, 1, 1); } /* linear */.cb2 { animation-timing-function: cubic-bezier(0.25, 0.1, 0.25, 1); } /* ease */.cb3 { animation-timing-function: cubic-bezier(0.42, 0, 1, 1); } /* ease-in */.cb4 { animation-timing-function: cubic-bezier(0, 0, 0.58, 1); } /* ease-out */.cb5 { animation-timing-function: cubic-bezier(0.42, 0, 0.58, 1); } /* ease-in-out */.cb6 { animation-timing-function: cubic-bezier(0.68, -0.55, 0.27, 1.55); } /* overshoot */@keyframes slide {0% { left: 0; }100% { left: calc(100% - 20px); }}
</style></head><body><h2>Esempi di <code>animation-timing-function</code> con <code>cubic-bezier(...)</code></h2>
<div class="row"><div class="label">linear – cubic-bezier(0, 0, 1, 1)</div>
<div class="track"><div class="box cb1"></div></div></div><div class="row"><div class="label">ease (default) – cubic-bezier(0.25, 0.1, 0.25, 1)</div>
<div class="track"><div class="box cb2"></div></div></div><div class="row"><div class="label">ease-in – cubic-bezier(0.42, 0, 1, 1)</div>
<div class="track"><div class="box cb3"></div></div></div><div class="row"><div class="label">ease-out – cubic-bezier(0, 0, 0.58, 1)</div>
<div class="track"><div class="box cb4"></div></div></div><div class="row"><div class="label">ease-in-out – cubic-bezier(0.42, 0, 0.58, 1)</div>
<div class="track"><div class="box cb5"></div></div></div><div class="row"><div class="label">overshoot – cubic-bezier(0.68, -0.55, 0.27, 1.55)</div>
<div class="track"><div class="box cb6"></div></div></div></body></html>
Contenuto Esempio: animation-timing-function
Prova questo esempio
DEMO
Note:
Le indicazioni dei Browser supportati sono superate grazie alla loro costante evoluzione, si consiglia di verificare la compatibilità dei vari browser eseguendo il test cliccando qui sotto.

IP: 216.73.216.214