您可以使用componentDidUpdate和componentDidMount方法以及对div的引用来显式设置div的CSS属性,如下所示:
endAnimation () {
setTimeout(()=>{
this.refs.animatedDiv.className = "newClassToReset"
}, this.animationLength);
},
componentDidMout (){
this.endAnimation();
},
componentDidUpdate (){
this.endAnimation
}
但是,如果您使用CSS进行动画制作,最好使用官方的ReactCSSTransitionGroups插件,该插件位于:https ://facebook.github.io/react/docs/animation.html
设置起来真的很容易,在您的示例中将是这样的:
<ReactCSSTransitionGroup transitionName="shrink" transitionAppear={true} transitionAppearTimeout={500}>
<div className="bar">Bar</div>
</ReactCSSTransitionGroup>
然后在CSS文件中提供以下类:
.shrink-appear {
height: 700px;
}
.shrink-appear.shrink-appear-active {
height: 0;
transition: height 500ms ease-in;
}
过渡组的工作方式是,首先将类“收缩出现”添加到需要动画的元素中,然后再添加“收缩出现激活”类,因为我们的transitionName是“收缩”。
如果要制作离开动画,只需向过渡组提供transitionLeaveTimeout并定义2个新类即可,在我们的示例中,这些类将是:
.shrink-leave {
height: 0;
}
.shrink-leave.shrink-leave-active {
opacity: 700;
transition: height 500ms ease-in;
}
如您所见,请假动画类与我们出现的动画相反,以提供相反的效果。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句