使用 CSSTransition 组件和 React 我想应用淡入动画
在这里你可以找到我想要实现的一个小例子:https ://codesandbox.io/s/j75712qjvy
在第一次加载时,文本会淡入,但在单击下面的某些按钮时不会再出现。
每次单击一个按钮时,状态都会更新并重新呈现组件。所以我的期望是fadeIn 动画应该重新启动。
我忽略了什么?
使用 CSSTransition 组件和 React 我想应用淡入动画
在这里你可以找到我想要实现的一个小例子:https ://codesandbox.io/s/j75712qjvy
在第一次加载时,文本会淡入,但在单击下面的某些按钮时不会再出现。
每次单击一个按钮时,状态都会更新并重新呈现组件。所以我的期望是fadeIn 动画应该重新启动。
我忽略了什么?
你不需要 CssTransition 来实现这个效果。只需 CSS 和使用key
元素上的属性即可完成。
代码的关键部分是您的元素:
<h2 className="fadeIn" key={this.state.value}>
{this.state.value}
</h2>
我添加了key
andclassName
道具。这告诉 react 在密钥更改时替换它。
接下来是相关的 CSS:
.fadeIn {
animation: 1s fadeIn;
}
@keyframes fadeIn {
0% {
opacity: 0;
}
100% {
opacity: 1;
}
}
每次重新渲染元素时,这都会在动画中应用淡入淡出。
注意:只react-transition-group
需要实现退出过渡效果。没有它,入口过渡效果很容易处理。