我想搬点东西bottom: +/- 100px
。
因此,当聚焦时,它会向上滑动。当不聚焦时,它会滑回。
我创建了这个 React render()
:
var component = (
<div key={"trayResponder_" + this.props.trayOpen} >
</div>
);
return(
<ReactCSSTransitionGroup transitionName="tray-responder">
{component}
</ReactCSSTransitionGroup>
);
然后我key
通过更新切换它的状态this.props.trayOpen
然后我的 Less 是这样的:
.tray-responder-enter {
}
.tray-responder-enter-active {
.animation(slideUp 1s ease infinite )
}
.tray-responder-leave {
}
.tray-responder-leave-active {
.animation(slideDown 1s ease infinite )
}
.keyframes(slideUp;{
0% {transform: translateY(100%);}
50% {transform: translateY(-8%);}
65% {transform: translateY(4%);}
80% {transform: translateY(-4%);}
95% {transform: translateY(2%);}
100% {transform: translateY(0%);}
});
.keyframes(slideDown;{
0% {transform: translateY(-100%);}
50%{transform: translateY(8%);}
65%{transform: translateY(-4%);}
80%{transform: translateY(4%);}
95%{transform: translateY(-2%);}
100% {transform: translateY(0%);}
});
采用来自animation.less
:
.keyframes(@name; @arguments) {
@-moz-keyframes @name { @arguments(); }
@-webkit-keyframes @name { @arguments(); }
@keyframes @name { @arguments(); }
}
.animation(@arguments) {
-webkit-animation: @arguments;
-moz-animation: @arguments;
animation: @arguments;
}
不幸的是,这似乎不起作用。什么都没有发生。没有动画。不太清楚为什么。
更新
ReactCSSTransitionGroup 的问题在于它enter-active
同时发生leave-active
。如果您要切换不透明度,这似乎不是问题。但是,如果您像我一样上下移动事物,那么您会同时看到两者。
如此处所示: