Рендерите обычные элементы, которые движутся к цели, отвечают на жесты и красиво уходят.
Animated.<tag>
Animated.div, Animated.button, Animated.svg и любой другой тег HTML или SVG рендерят обычный элемент без обёртки. Их style принимает значения, а трансформации могут быть массивами, как в React Native.
Конечное движение transform и opacity на этих элементах, включая пружины, может воспроизводиться браузером.
Подготовка примера…
seed, pose, poses и tempo
seed — первый кадр, pose — текущая цель (объект или имя записи в poses), а tempo — timing или пружина. Изменение одного только tempo не воспроизводит заново неизменную цель.
respond сопоставляет жестам временные цели: hover, focus, focusWithin, press, longPress, drag, inView и другие. Когда ответ заканчивается, элемент возвращается к своей позе оттуда, где он находится.
onResponse сообщает о начале и конце каждого ответа, а respond={{ press: {} }} наблюдает за жестом, ничего не меняя визуально.
Подготовка примера…
Общие настройки через Animated.Scope
Animated.Scope передаёт имя позы, темп и настройки анимации по умолчанию элементам Animated внутри себя.
Animated.wrap(Component) — createAnimatedComponent в React Native — позволяет компоненту, который пробрасывает ref и сводится к одному DOM-элементу, принимать те же props.