fs-css-transition
解决react-transition-group CSSTransition无法同时定制多个css动画的问题
基础示例
基础用法与CSSTransition一致
state = show: true { this } { return <div> <button onClick=thistoggleShow>click</button> <FsCSSTransition in=thisstateshow timeout=300 classNames="fade"> <div className="box">base demo</div> </FsCSSTransition> </div> }
classNames可以为string也可以为object,同CSSTransition一致
同时控制多个动画
与CSSTransition不同的是,如果children为function,FsCSSTransition会将相应的类名回传回来,我们可以通过这样的方式来同时控制多个css动画
state = show: true { this } { return <div> <button onClick=thistoggleShow>click</button> <FsCSSTransition in=thisstateshow timeout=3000 classNames="ioc"> { return <div> <div className= /> <div className= /> </div> } </FsCSSTransition> </div> }
相应的样式为
Props
- in: boolean, 用于控制是否显示
- timeout: number, 用于估算动画完成时间
- children: function or ReactNode, 为function,回传动画状态(exited, exiting, entered, entering)和当前的类名 (state: string, className: string): void
- classNames: object or string, 为string,会依次添加
*-enter
,*-enter-active
,*-enter-done
,*-exit
,*-exit-active
,*-exit-done
,为object则意味着自己定制相关状态的类名,e.g{ enter: 'cls-enter', enterActive: 'cls-enter-active', enterDone: 'cls-enter-done', exit: 'cls-exit', exitActive: 'cls-exit-active', exitDone: 'cls-exit-done' }