可以用来制作补间动画的组件。
import React, {Component} from 'react';
import {Animation, Button} from 'hana-ui';
/**
* @en
* Base
*
* `THE CUBE` can changed its position.
*
* @cn
* 基础
*
* 一个可以滑动的小方块。
*/
export default class ExampleBase extends Component {
state = {
begin: true
}
render() {
const cubeStyle = {
width: 40,
height: 40,
background: '#6cf',
borderRadius: 5
};
const wrapperStyle = {
height: 40,
width: 400,
padding: 5,
background: '#ddd',
borderRadius: 5
};
return (
<div>
<div style={wrapperStyle}>
<Animation
animation={{left: this.state.begin ? 0 : 360}}
duration={400}
>
{style => <div
style={Object.assign({}, cubeStyle, {
WebkitTransform: `translate3d(${style.left}px, 0, 0)`,
transform: `translate3d(${style.left}px, 0, 0)`
})}
/>}
</Animation>
</div>
<br />
<Button onClick={() => this.setState({begin: !this.state.begin})}>Move</Button>
</div>
);
}
}
一个可以滑动的小方块。
属性名 | 类型 | 默认值 | 说明 |
---|---|---|---|
children | function | 子节点 | |
duration | number | 1000 | 动画持续时间 |
animation | any | 动画内容 | |
onStart | function | () => {} | 动画开始时的回调函数 |
onEnd | function | () => {} | 动画结束时的回调函数 |
easing | enum: 'easeCubicInOut' 'easeLinear' 'easePolyInOut' 'easeQuadInOut' 'easeSinInOut' 'easeExpInOut' 'easeCircleInOut' |
'easeCubicInOut' | 缓动函数, 查看更多 |
未在文档中说明的属性将会被自动加到根元素或form元素上。