mannaro
@mannaro
Умею профессионально гуглить

Как реализовать анимации в React?

Добрый день! Расскажите мне, пожалуйста, об анимации в React. Нужно мне, например, при удалении компонента со страницы реализовать плавное исчезновение. Или, наоборот, при добавлении анимировать всплытием. Как поступить? Относится ли к этому CSSTransitionGroup и как это едят?
  • Вопрос задан
  • 11463 просмотра
Решения вопроса 1
Если вам нужно плавно скрыть элемент - CSSTransitionGroup вполне подойдет. Прочтите документацию - https://facebook.github.io/react/docs/animation.html (не вижу смысла здесь ее переписывать). В общем принцип работы таков - компонент CSSTransitionGroup сохранит элемент в DOM на время перехода (анимации) и сразу после ее завершения - удалит (если речь об удалении DOM).

Вот так у меня выглядит код для такого меню:

<CSSTransitionGroup transitionName="ProductCategoriesMenu--submenu-transition" transitionEnter={false}>
          {category.products.length && isCategorySelected ? this.renderSubMenu(category) : null}
        </CSSTransitionGroup>


.ProductCategoriesMenu--submenu-transition-leave {
  max-height: 1000px;
  overflow: hidden;
}

.ProductCategoriesMenu--submenu-transition-leave-active {
  max-height: 0;
  transition: max-height 1s cubic-bezier(0.22, 0.61, 0.36, 1);
}


c8012d209b4542fc8647e9a1b9b8716d.gif
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
delch
@delch
Frontend developer
Вроде как можно через componentWillMount и componentWillUnmount навешывать классы для анимаций и уже на css её реализовывать.. Нет ?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы