动画 CSSTransition 反应

Vic*_*yos 1 animation reactjs react-transition-group

使用 CSSTransition 组件和 React 我想应用淡入动画

在这里你可以找到我想要实现的一个小例子:https : //codesandbox.io/s/j75712qjvy

在第一次加载时,文本会淡入,但在单击下面的某些按钮时不会再次出现。

每次我单击一个按钮时,状态都会更新并重新呈现组件。所以我的期望是fadeIn 动画应该重新启动。

我忽略了什么?

Ted*_*Ted 5

您不需要 CssTransition 来实现此效果。它可以仅使用 CSS 和key元素上的属性来完成。

看到这个工作演示

代码的关键部分是您的元素:

<h2 className="fadeIn" key={this.state.value}>
  {this.state.value}
</h2>
Run Code Online (Sandbox Code Playgroud)

我添加了keyclassName道具。这告诉 react 在密钥更改时替换它。

接下来是相关的 CSS:

.fadeIn {
  animation: 1s fadeIn;
}

@keyframes fadeIn {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
Run Code Online (Sandbox Code Playgroud)

每次重新渲染元素时,这都会应用淡入淡出的动画。

注:react-transition-group只需要达到的退出过渡效果。没有它,可以轻松处理入口过渡效果。