В настоящее время я использую useTransition для отображения моей мобильной навигации:
const MobileNav = ({show, toggle, styles}) => {
let transition = useTransition(show, null, {
from: {transform: 'translateY(-100%) scale(0.7)', ...styles},
enter: {transform: 'translateY(0) scale(1)'},
leave: {transform: 'translateY(100%) scale(0.7)'}
})
return (
<>
{transition.map(({item, props, key}) => {
return item ? (
<animated.div className="navbar__menu_mob" key={key} style={props}>
...someHtml
</animated.div>
) : null
})}
</>
)
}
С этим кодом анимируются масштаб и перевод одновременно. Моя конечная цель состоит в том, чтобы связать их так, чтобы сначала scale
, а потом translateY
Исходя из примеров реагирующей пружины, кажется, что лучший способ обернуть мои первые animated.div
в другие animated.div
и связать их в цепочку, используя useChain
.
Я, кажется, изо всех сил пытаюсь понять лучший способ соедините мои анимации вместе. В идеале мне не нужно было бы оборачивать то, что у меня есть, в другую animated.div
. Я мог бы сделать с некоторым руководством.