Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在react js中重新运行css3动画_Javascript_Css_Reactjs - Fatal编程技术网

Javascript 如何在react js中重新运行css3动画

Javascript 如何在react js中重新运行css3动画,javascript,css,reactjs,Javascript,Css,Reactjs,在ajax成功后,我需要在几秒钟内显示一条快速flash消息。消息应在1/2秒后自动隐藏 由于reactjs不支持dom操作,因此我希望使用css3动画实现同样的效果 这是我准备的简单演示 当您第一次单击按钮时,它会显示消息,但在随后的单击中,它不会执行任何操作 类测试扩展了React.Component{ 状态={ 节目:假 } showFlashMessage(){ 这是我的国家({ 秀:真的 }) } render(){ 报税表(< div> < div类名称={ `消息${this.s

在ajax成功后,我需要在几秒钟内显示一条快速flash消息。消息应在1/2秒后自动隐藏

由于reactjs不支持dom操作,因此我希望使用css3动画实现同样的效果

这是我准备的简单演示

当您第一次单击按钮时,它会显示消息,但在随后的单击中,它不会执行任何操作

类测试扩展了React.Component{
状态={
节目:假
}
showFlashMessage(){
这是我的国家({
秀:真的
})
}
render(){
报税表(<
div>
<
div类名称={
`消息${this.state.show?“淡出”:“}`
}>你好
< button id=“但是” onClick={ this.showFlashMessage.bind(this) }>单击我< /div> ) } } ReactDOM.render(< 测试/>, document.getElementById('容器') );
@关键帧FadeAnimation{
0% {
不透明度:1;
能见度:可见;
}
100% {
不透明度:0;
可见性:隐藏;
}
}
.淡出{
动画:FadeAnimation 1s缓进。4s向前;
}
.留言{
可见性:隐藏;
}

正如我对您的回答一样,也一样,请尝试处理状态更改。由于您在上一个问题中提到您正在使用
切换按钮
,因此我使用了类似的
复选框
,这将对您有所帮助

我已经使代码仅在切换被选中时工作,我假设您也需要在切换关闭时显示一些消息。通过在两个类之间切换,也可以执行相同的操作。尽量避免内联函数绑定,因为每次渲染都会触发内联函数绑定。取而代之的是构造函数,它在加载组件时只执行一次

类测试扩展了React.Component{
构造函数(){
超级();
此.state={
秀:假,,
showClass:未定义
}
this.showFlashMessage=(事件)=>this.\u showFlashMessage(事件);
}
_showFlashMessage(事件){
这是我的国家({
show:!this.state.show,
showClass:(!this.state.show?“淡出”:“淡出2”)
})
}
render(){
报税表(<
div>
<
div类名称={
`消息${this.state.showClass}`
}>你好
点击我< /div> ) } } ReactDOM.render(< 测试/>, document.getElementById('容器') );
@关键帧FadeAnimation{
0% {
不透明度:1;
能见度:可见;
}
100% {
不透明度:0;
可见性:隐藏;
}
}
@关键帧FadeAnimation2{
0% {
不透明度:1;
能见度:可见;
}
100% {
不透明度:0;
可见性:隐藏;
}
}
.淡出{
不透明度:1;
能见度:可见;
动画:FadeAnimation 1s缓进。2s向前;
}
.衰减2{
不透明度:1;
能见度:可见;
动画:FadeAnimation2 1s缓进。2s向前;
}
.留言{
不透明度:0;
可见性:隐藏;
}

您应该捕获动画的结尾并在那里更改状态

见此:


这是我想要的带有按钮的续集。通过复选框,您将删除淡出类,然后在下一次单击时添加相同的淡出类。但我希望每次点击按钮都能看到它。我想在选中或取消选中复选框的情况下,在每个状态发生变化时显示div。我也试着用我的前一个线程解释了同样的问题。我最初是用你之前提出的问题来实现的,现在我在代码中添加了一些调整,使之适合你。如果有任何问题,请告诉我。如果你需要通过其他方式实现目标,我们也欢迎你。你的解决方案现在运行良好,但我仍然想知道这是否是实现目标的最佳方式。