Funkcje Easing
Ta strona została przetłumaczona przez PageTurner AI (beta). Nie jest oficjalnie zatwierdzona przez projekt. Znalazłeś błąd? Zgłoś problem →
Moduł Easing implementuje powszechnie używane funkcje płynności. Jest wykorzystywany przez Animated.timing() do tworzenia fizycznie wiarygodnych ruchów w animacjach.
Wizualizację niektórych funkcji płynności znajdziesz na https://easings.net/
Predefiniowane animacje
Moduł Easing udostępnia kilka gotowych animacji poprzez następujące metody:
-
backtworzy podstawową animację, w której obiekt najpierw lekko się cofa przed ruchem do przodu -
bouncetworzy animację odbijania -
easetworzy podstawową animację inercyjną -
elastictworzy podstawową interakcję sprężystą
Funkcje standardowe
Udostępniono trzy podstawowe funkcje płynności:
Funkcja poly może implementować funkcje wyższych rzędów jak kwartyczne czy kwintowe.
Funkcje dodatkowe
Dodatkowe funkcje matematyczne są dostępne poprzez:
-
beziertworzy krzywą Béziera trzeciego stopnia -
circletworzy funkcję kołową -
sintworzy funkcję sinusoidalną -
exptworzy funkcję wykładniczą
Następujące funkcje pomocnicze modyfikują inne funkcje płynności:
-
inuruchamia funkcję płynności w przód -
inOutnadaje funkcji symetryczność -
outuruchamia funkcję płynności wstecz
Przykład
- TypeScript
- JavaScript
Dokumentacja
Metody
step0()
static step0(n: number);
Funkcja schodkowa zwracająca 1 dla każdej dodatniej wartości n.
step1()
static step1(n: number);
Funkcja schodkowa zwracająca 1, gdy n jest większe lub równe 1.
linear()
static linear(t: number);
Funkcja liniowa f(t) = t. Pozycja jest wprost proporcjonalna do czasu trwania.
https://cubic-bezier.com/#0,0,1,1
ease()
static ease(t: number);
Podstawowa interakcja inercyjna, podobna do stopniowego przyspieszania obiektu.
https://cubic-bezier.com/#.42,0,1,1
quad()
static quad(t: number);
Funkcja kwadratowa f(t) = t * t. Pozycja równa się kwadratowi czasu trwania.
https://easings.net/#easeInQuad
cubic()
static cubic(t: number);
Funkcja sześcienna f(t) = t * t * t. Pozycja równa się sześcianowi czasu trwania.
https://easings.net/#easeInCubic
poly()
static poly(n: number);
Funkcja potęgowa. Pozycja równa się czasowi trwania podniesionemu do potęgi N.
n = 4: https://easings.net/#easeInQuart n = 5: https://easings.net/#easeInQuint
sin()
static sin(t: number);
Funkcja sinusoidalna.
https://easings.net/#easeInSine
circle()
static circle(t: number);
Funkcja kołowa.
https://easings.net/#easeInCirc
exp()
static exp(t: number);
Funkcja wykładnicza.
https://easings.net/#easeInExpo
elastic()
static elastic(bounciness: number);
Podstawowa interakcja sprężysta, przypominająca drgania sprężyny.
Domyślna sprężystość wynosi 1, co powoduje lekkie przekroczenie wartości docelowej. Wartość 0 całkowicie eliminuje przekroczenia, a wartości N > 1 spowodują około N przekroczeń.
https://easings.net/#easeInElastic
back()
static back(s)
Używaj z Animated.parallel(), aby uzyskać efekt cofnięcia obiektu na początku animacji.
bounce()
static bounce(t: number);
Tworzy podstawowy efekt odbijania.
https://easings.net/#easeInBounce
bezier()
static bezier(x1: number, y1: number, x2: number, y2: number);
Implementuje krzywą Béziera trzeciego stopnia, odpowiadającą właściwości CSS transition-timing-function.
Narzędzie do wizualizacji krzywych Béziera: https://cubic-bezier.com/
in()
static in(easing: number);
Wykonuje funkcję easingu w kierunku normalnym.
out()
static out(easing: number);
Wykonuje funkcję easingu w kierunku odwrotnym.
inOut()
static inOut(easing: number);
Tworzy symetryczną funkcję easingu. Animacja przebiega normalnie przez pierwszą połowę czasu, a następnie odwrotnie przez drugą połowę.