简体中文

动画

可以用来制作补间动画的组件。

基础
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元素上。