Изберете драйвер, комбинирайте няколко и знайте точно какво става, когато един бъде спрян или заменен.
timing, spring и decay
timing следва крива за фиксирана duration. spring следва физиката и няма фиксирана дължина. decay започва със скорост и се забавя.
Същите драйвери приемат число, ValueXY или запис, така че { x, y, opacity } могат да се движат заедно.
Подготовка на примера…
Параметри на пружината
Използвайте една параметризация. Без нея получавате пружината по подразбиране на React Native (tension 40, friction 7). velocity на пружината по подразбиране е скоростта на траекторията, която прекъсва.
sequence изпълнява едно след друго, parallel — заедно, stagger стартира всяко след закъснение, delay чака, а loop повтаря. Резултатът отново е контролер, така че композициите се влагат.
Подготовка на примера…
start, stop и reset
Всеки контролер има start(callback?), stop() и reset(). Callback получава { finished }: false, когато движението е спряно или заменено.
Стартирането на нов драйвер върху същата стойност заменя текущия от текущата позиция. Няма скок към нито един от краищата.
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
Следване на друга стойност
Жив toValue рестартира драйвера всеки път, когато тази стойност се промени, като tracking в React Native. follow(target, source) е същата пружинна връзка като именувана функция.
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 и ключови кадри
Easing съответства на React Native: linear, quad, cubic, sin, circle, exp, elastic, back, bounce, bezier и помощниците in, out, inOut. keyframes(value, frames, options) превежда една стойност през няколко числа с незадължителни times и repeat.