Я мог бы неправильно понять все это, но я пытаюсь сделать некоторые анимации CSS, используя React и React Transition Group.
Но что касается моего кода ниже, exit animations
не будет запущен для вложенного (последнего) компонента CSSTransition. Разве нельзя так работать с React Transition Group?
Надеюсь, этого кода достаточно, чтобы показать, как он структурирован:
return(
<TransitionGroup component={null}>
{active &&
<CSSTransition in={active} timeout={time} classNames={overlayAnimationStyles}>
<div className={styles.video}>
<div className={styles.video__overlay} onClick={handleCloseClick}/>
<CSSTransition appear in={active} timeout={time} classNames={contentAnimationStyles} onEntered={handlePlayerEntered}>
<div className={styles.video__content}>
<div className={styles.video__player}>
{embedPlayer && <iframe
src={`https://www.youtube.com/embed/${video}`}
frameBorder="0" allowFullScreen></iframe>}
</div>
</div>
</CSSTransition>
</div>
</CSSTransition>
}
</TransitionGroup>
);
Различные объекты стилей выглядят так:
const overlayAnimationStyles = {
exit: videoAnimationStyles['overlay-exit'],
exitActive: videoAnimationStyles['overlay-exit-active'],
enter: videoAnimationStyles['overlay-enter'],
enterActive: videoAnimationStyles['overlay-enter-active'],
};
const contentAnimationStyles = {
appear: videoAnimationStyles['content-appear'],
appearActive: videoAnimationStyles['content-appear-active'],
exit: videoAnimationStyles['content-exit'],
exitActive: videoAnimationStyles['content-exit-active']
};
Очень ценится.
Если мне нужно привести пример, дайте мне знать.