Tanto cuando hablamos de transiciones como cuando hablamos de animaciones tenemos dos propiedades que se aplican exactamente igual y se encargan de definir el ritmo o transcurso de la animaci贸n o transici贸n en cuesti贸n.
Dichas propiedades son las siguientes:
Propiedades | Descripci贸n | Valor |
---|---|---|
transition-timing-function |
Ritmo de la transici贸n | funci贸n suavizado predefinida | cubic-bezier(A, B, C, D) |
animation-timing-function |
Ritmo de la animaci贸n | funci贸n suavizado predefinida | cubic-bezier(A, B, C, D) |
Cualquiera de estas dos propiedades permite indicar el ritmo de la transici贸n/animaci贸n en cuesti贸n.
Funci贸n predefinida
Quiz谩s, la forma m谩s sencilla de indicar el ritmo de una animaci贸n, ser铆a especificar una de las siguientes palabras clave que existen. Cada una de ella, realiza la animaci贸n a un ritmo diferente:
Valor | Inicio | Transcurso | Final | Equivalente en cubic-beizer |
---|---|---|---|---|
ease | Lento | R谩pido | Lento | cubic-bezier(0.25, 0.1, 0.25, 1) |
linear |
Normal | Normal | Normal | cubic-bezier(0, 0, 1, 1) |
ease-in |
Lento | Normal | Normal | cubic-bezier(0.42, 0, 1, 1) |
ease-out |
Normal | Normal | Lento | cubic-bezier(0, 0, 0.58, 1) |
ease-in-out |
Lento | Normal | Lento | cubic-bezier(0.42, 0, 0.58, 1) |
cubic-bezier( A, B, C, D) |
- | - | - | Transici贸n personalizada |
Si no se indica ninguna funci贸n de tiempo concreta, CSS utilizar谩 la funci贸n de tiempo ease
. Sin embargo, podemos utilizar cualquiera de las anteriores.
La funci贸n de tiempo linear
quiz谩s sea la m谩s sencilla de entender, ya que siempre va al mismo ritmo, un ritmo constante. Por su parte, ease
comienza suavemente, continua de forma m谩s r谩pida y termina suavemente de nuevo. Las funciones de tiempo ease-in
y ease-out
son variaciones que van m谩s lento al principio o al final, y la funci贸n de tiempo ease-in-out
es una mezcla de las dos anteriores.
En el caso de que ninguna de ellas nos ofrezca el ritmo que buscamos, quiz谩s nuestra mejor opci贸n sea definirla manualmente mediante cubic-bezier()
.
Funci贸n Cubic Bezier
La funci贸n de tiempo cubic-bezier()
es una funci贸n personalizada, donde podemos darle unos valores concretos depediendo de la velocidad que queramos que tenga la transici贸n. En la 煤ltima columna de la tabla anterior podemos ver los valores equivalentes a cada una de las palabras clave mencionadas como linear
, ease
, ease-in
, ease-out
o ease-in-out
.
En principio, el formato de la funci贸n es cubic-bezier(A, B, C, D)
, donde esos cuatro par谩metros son n煤meros que indican lo siguiente:
Par谩metro | Valor | Descripci贸n | Pertenece a |
---|---|---|---|
A |
X1 | Eje X del primer punto que orienta la curva bezier. | P1 |
B |
Y1 | Eje Y del primer punto que orienta la curva bezier. | P1 |
C |
X2 | Eje X del segundo punto que orienta la curva bezier. | P2 |
D |
Y2 | Eje Y del segundo punto que orienta la curva bezier. | P2 |
Todo esto se puede ver muy f谩cilmente utilizando la herramienta Cubic Bezier, donde puedes crear de forma interactiva el ritmo de las transiciones o animaciones, estableciendo visualmente los par谩metros deseados.
Funci贸n de salto
Por 煤ltimo, a parte de las funciones de suavizado predefinidas y las cubic bezier, tambi茅n es posible utilizar funciones de salto, que pueden ser muy 煤tiles en ciertas ocasiones.
Las funciones de salto permiten establecer una transici贸n o animaci贸n en un n煤mero concreto de pasos muy espec铆fico, que se pasa por par谩metro n
. Hay ciertas variaciones de funciones de salto, son las siguientes:
Valor | Descripci贸n | Equivalente |
---|---|---|
steps( n, jump-start) |
Divide el transcurso en n saltos y omite el primer paso. |
|
steps( n, jump-end) |
Divide el transcurso en n saltos y omite el 煤ltimo paso. |
|
steps( n, jump-none) |
Divide el transcurso en n saltos y no omite ning煤n paso. |
|
steps( n, jump-both) |
Divide el transcurso en n saltos y omite el primer y 煤ltimo paso. |
|
steps( n) |
Alias de jump-end |
Equivale a steps( n, jump-end) |
steps( n, start) |
Alias de jump-start |
Equivale a steps( n, jump-start) |
steps( n, end) |
Alias de jump-end |
Equivale a steps( n, jump-end) |
step-start |
Funci贸n de salto predefinida | Equivale a steps(1, jump-start) |
step-end |
Funci贸n de salto predefinida | Equivale a steps(1, jump-end) |
Estas funciones de salto pueden ser especialmente interesantes para hacer animaciones con spritesheets de im谩genes, como por ejemplo, este de Guybrush Threepwood de Monkey Island. En ella, realizamos una animaci贸n que no nos interesa que sea animada, sino que se pueda saltar entre vi帽etas para replicar el efecto de una animaci贸n:
Tienes un art铆culo donde explico como funciona en Animar personajes con CSS.
No hay comentarios.:
Publicar un comentario
Nota: s贸lo los miembros de este blog pueden publicar comentarios.