【发布时间】:2016-01-30 07:42:37
【问题描述】:
我想在两个组件之间制作动画,其中第一个组件淡出并在下一个组件添加到 DOM 并淡入之前从 DOM 中删除。否则,新组件将添加到 DOM 并占用删除旧组件之前的空间。您可以在这个小提琴中看到问题:
http://jsfiddle.net/phepyezx/4
// css snippet
.switch-enter {
opacity: 0.01;
}
.switch-enter.switch-enter-active {
opacity: 1.0;
}
.switch-leave {
opacity: 1.0;
}
.switch-leave.switch-leave-active {
opacity: 0;
}
// React snippet
<ReactCSSTransitionGroup transitionName="switch">
<div key={key} className={className}>{this.text()}</div>
</ReactCSSTransitionGroup>
一个不可接受的解决方案(对我来说)是在转换到新组件之前用 css 隐藏原始组件,如下所示:
http://jsfiddle.net/phepyezx/5
// Change to css
.switch-leave {
visibility: hidden;
height: 0px;
width: 0px;
opacity: 1.0;
}
有没有办法在移除原始组件之前“延迟”安装新组件的反应?我愿意接受速度或其他一些库来实现这一点。
谢谢
【问题讨论】:
标签: css reactjs reactcsstransitiongroup