Kies een driver, combineer er meerdere en weet precies wat er gebeurt als er een wordt gestopt of vervangen.
timing, spring en decay
timing volgt een curve gedurende een vaste duration. spring volgt natuurkunde en heeft geen vaste lengte. decay begint met een snelheid en remt af.
Dezelfde drivers accepteren een getal, een ValueXY of een record, dus { x, y, opacity } kunnen samen bewegen.
Voorbeeld voorbereiden…
Veerparameters
Gebruik één parametrisering. Zonder krijg je de standaardveer van React Native (tension 40, friction 7). De velocity van een veer is standaard de snelheid van de baan die hij onderbreekt.
sequence draait na elkaar, parallel tegelijk, stagger start elk na een vertraging, delay wacht en loop herhaalt. Het resultaat is weer een controller, dus composities kun je nesten.
Voorbeeld voorbereiden…
start, stop en reset
Elke controller heeft start(callback?), stop() en reset(). De callback krijgt { finished }: false als de beweging werd gestopt of vervangen.
Een nieuwe driver starten op dezelfde waarde vervangt de lopende vanaf de huidige positie. Er is geen sprong naar een van beide uiteinden.
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
Een andere waarde volgen
Een levende toValue start de driver opnieuw zodra die waarde verandert, zoals tracking in React Native. follow(target, source) is dezelfde veerverbinding als benoemde functie.
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 en keyframes
Easing komt overeen met React Native: linear, quad, cubic, sin, circle, exp, elastic, back, bounce, bezier en de helpers in, out, inOut. keyframes(value, frames, options) voert één waarde door meerdere getallen, met optionele times en repeat.