mirror of
https://github.com/ant-design/ant-design.git
synced 2024-12-02 15:59:38 +08:00
4.1 KiB
4.1 KiB
Router 默认进出场
- order: 7
router 组合的进场与出场动画。
var ReactRouter = require('react-router');
var Router = ReactRouter.Router;
var Route = ReactRouter.Route;
var Link = ReactRouter.Link;
var QueueAnim = antd.QueueAnim;
var Menu = antd.Menu;
var App = React.createClass({
render() {
var key = this.props.location.pathname;
var keys = key.replace('/','') ? [ key.replace('/','') ] : [ 'home' ];
return (
<div>
<Menu style={{marginBottom: 10}} mode="horizontal" selectedKeys={keys}>
<Menu.Item key='home'>
<Link to="/">首页</Link>
</Menu.Item>
<Menu.Item key='page1'>
<Link to="/page1">Page 1</Link>
</Menu.Item>
<Menu.Item key='page2'>
<Link to="/page2">Page 2</Link>
</Menu.Item>
</Menu>
<QueueAnim type={['right','left']} className='demo-router-wap'>
{React.cloneElement(this.props.children||<Home/>, {key: key})}
</QueueAnim>
</div>
);
}
});
var Home = React.createClass({
render() {
return (
<div className='demo-router-child'>
<QueueAnim className="demo-content">
<div className="demo-kp" key='a'>
<QueueAnim component='ul'>
<li key='t_li0'></li>
<li key='t_li1'></li>
<li key='t_li2'></li>
</QueueAnim>
</div>
<div className="demo-kp" key='b'>
<QueueAnim component='ul'>
<li key='t_li0'></li>
<li key='t_li1'></li>
<li key='t_li2'></li>
</QueueAnim>
</div>
<div className="demo-kp" key='c'>
<QueueAnim component='ul'>
<li key='t_li0'></li>
<li key='t_li1'></li>
<li key='t_li2'></li>
</QueueAnim>
</div>
</QueueAnim>
</div>
);
}
})
var Page1 = React.createClass({
render() {
return (
<div className='demo-router-child'>
<QueueAnim className="demo-content">
<div className="demo-kp" key='b'>
<QueueAnim component='ul'>
<li key='t_li0'></li>
<li key='t_li1'></li>
<li key='t_li2'></li>
</QueueAnim>
</div>
<div className="demo-listBox">
<QueueAnim className="demo-list" delay={200}>
<div className="title" key='title3'></div>
<QueueAnim component='ul' animConfig={{opacity:[1, 0],translateY:[0, 30],scale:[1,0.9]}} key='ul'>
<li key='tt_li0'></li>
<li key='tt_li1'></li>
<li key='tt_li2'></li>
</QueueAnim>
</QueueAnim>
</div>
</QueueAnim>
</div>
);
}
});
var Page2 = React.createClass({
render() {
return (
<div className='demo-router-child'>
<div className="demo-content" >
<div className="demo-listBox">
<QueueAnim className="demo-list">
<div className="title" key='title3'></div>
<QueueAnim component='ul' animConfig={{opacity:[1, 0],translateY:[0, 30],scale:[1,0.9]}} key='li'>
<li key='tt_li0'></li>
<li key='tt_li1'></li>
<li key='tt_li2'></li>
<li key='tt_li3'></li>
<li key='tt_li4'></li>
</QueueAnim>
</QueueAnim>
</div>
</div>
</div>
);
}
});
ReactDOM.render((
<Router>
<Route path="/" component={App} ignoreScrollBehavior>
<Route path="page1" component={Page1} />
<Route path="page2" component={Page2} />
</Route>
</Router>
), document.getElementById('components-queue-anim-demo-router'));