Suavizado
Esta página fue traducida por PageTurner AI (beta). No está respaldada oficialmente por el proyecto. ¿Encontraste un error? Reportar problema →
El módulo Easing implementa funciones de suavizado comunes. Este módulo es utilizado por Animated.timing() para crear movimientos físicamente creíbles en animaciones.
Puedes encontrar una visualización de funciones de suavizado comunes en https://easings.net/
Animaciones predefinidas
El módulo Easing proporciona varias animaciones predefinidas mediante estos métodos:
-
backcrea una animación básica donde el objeto retrocede ligeramente antes de avanzar -
bounceproporciona una animación con efecto rebote -
easeofrece una animación inercial básica -
elasticcrea una interacción básica tipo resorte
Funciones estándar
Se proporcionan tres funciones de suavizado estándar:
La función poly permite implementar funciones de mayor potencia como cuárticas, quínticas y superiores.
Funciones adicionales
Estos métodos proporcionan funciones matemáticas adicionales:
-
bezierimplementa una curva de Bézier cúbica -
circleproporciona una función circular -
sinofrece una función sinusoidal -
expimplementa una función exponencial
Los siguientes helpers modifican otras funciones de suavizado:
-
inejecuta una función de suavizado en dirección normal (hacia adelante) -
inOuthace simétrica cualquier función de suavizado -
outejecuta una función de suavizado en reversa (hacia atrás)
Ejemplo
- TypeScript
- JavaScript
Referencia
Métodos
step0()
static step0(n: number);
Función escalonada que devuelve 1 para cualquier valor positivo de n.
step1()
static step1(n: number);
Función escalonada que devuelve 1 si n es mayor o igual a 1.
linear()
static linear(t: number);
Función lineal f(t) = t. La posición se correlaciona directamente con el tiempo transcurrido.
https://cubic-bezier.com/#0,0,1,1
ease()
static ease(t: number);
Interacción inercial básica, similar a un objeto que acelera gradualmente.
https://cubic-bezier.com/#.42,0,1,1
quad()
static quad(t: number);
Función cuadrática f(t) = t * t. La posición iguala el cuadrado del tiempo transcurrido.
https://easings.net/#easeInQuad
cubic()
static cubic(t: number);
Función cúbica f(t) = t * t * t. La posición iguala el cubo del tiempo transcurrido.
https://easings.net/#easeInCubic
poly()
static poly(n: number);
Función potencial donde la posición equivale a la N-ésima potencia del tiempo transcurrido.
n = 4: https://easings.net/#easeInQuart n = 5: https://easings.net/#easeInQuint
sin()
static sin(t: number);
Función sinusoidal.
https://easings.net/#easeInSine
circle()
static circle(t: number);
Una función circular.
https://easings.net/#easeInCirc
exp()
static exp(t: number);
Una función exponencial.
https://easings.net/#easeInExpo
elastic()
static elastic(bounciness: number);
Una interacción elástica básica, similar a un resorte oscilante.
La elasticidad predeterminada es 1, que produce un ligero rebase. Elasticidad 0 no rebasa, y N > 1 rebasa aproximadamente N veces.
https://easings.net/#easeInElastic
back()
static back(s)
Úsalo con Animated.parallel() para crear un efecto donde el objeto retrocede ligeramente al iniciar la animación.
bounce()
static bounce(t: number);
Proporciona un efecto de rebote básico.
https://easings.net/#easeInBounce
bezier()
static bezier(x1: number, y1: number, x2: number, y2: number);
Proporciona una curva bezier cúbica, equivalente a transition-timing-function en CSS Transitions.
Puedes visualizar curvas bezier en https://cubic-bezier.com/
in()
static in(easing: number);
Ejecuta una función de easing hacia adelante.
out()
static out(easing: number);
Ejecuta una función de easing en reversa.
inOut()
static inOut(easing: number);
Hace simétrica cualquier función de easing. Se ejecuta hacia adelante en la primera mitad y en reversa en la segunda mitad.