Välj en driver, kombinera flera och vet exakt vad som händer när en stoppas eller ersätts.
timing, spring och decay
timing följer en kurva under en fast duration. spring följer fysik och har ingen fast längd. decay startar med en hastighet och saktar in.
Samma drivers tar ett tal, ett ValueXY eller en post, så { x, y, opacity } kan röra sig tillsammans.
Förbereder exemplet…
Fjäderparametrar
Använd en parametrisering. Utan någon får du React Natives standardfjäder (tension 40, friction 7). En fjäders velocity är som standard hastigheten i banan den avbryter.
sequence kör en i taget, parallel kör tillsammans, stagger startar var och en efter en fördröjning, delay väntar och loop upprepar. Resultatet är återigen en controller, så kompositioner kan nästlas.
Förbereder exemplet…
start, stop och reset
Varje controller har start(callback?), stop() och reset(). Callbacken får { finished }: false när rörelsen stoppades eller ersattes.
Att starta en ny driver på samma värde ersätter den pågående från den aktuella positionen. Det blir inget hopp till någon av ändarna.
controller.js
const move = timing(value, { toValue: 1, duration: 600 });
move.start(({ finished }) => {
// finished is false when stopped or replaced by a new animation
});
move.stop(); // keeps the value where it is on screen
move.reset(); // returns to where this animation started
Följ ett annat värde
Ett levande toValue startar om drivern varje gång det värdet ändras, som tracking i React Native. follow(target, source) är samma fjäderkoppling som namngiven funktion.
tracking.js
// A live toValue tracks another value, like React Native tracking.spring(badge, { toValue: pointer, stiffness: 300, damping: 26 }).start();
// follow() is the same connection as a named function.follow(badge, pointer, { stiffness: 300, damping: 26 });
Easing och keyframes
Easing motsvarar React Native: linear, quad, cubic, sin, circle, exp, elastic, back, bounce, bezier och hjälparna in, out, inOut. keyframes(value, frames, options) för ett värde genom flera tal, med valfria times och repeat.