图表动画配置

图表动画配置

动画类型

G2 根据数据的装载更新,将动画分为以下四类:

| | appear | 图表第一次加载时的入场动画 | | enter | 图表绘制完成,发生更新后,产生的新图形的进场动画 | | update | 图表绘制完成,数据发生变更后,有状态变更的图形的更新动画 | | leave | 图表绘制完成,数据发生变更后,被销毁图形的销毁动画 |

动画元素

G2 图表中默认参与动画的元素:

  • Geometry shapes
  • Geometry labels
  • 图表组件 Component,在 G2 层,主要是以下组件进行动画
  • Axis

  • ticks

  • labels
  • grid

  • Annotation

> 说明:为了更好的动画效果,G2 为 Geometry shapes 内置了初始化时的群组入场动画,当用户自己配置了 appear 动画执行函数时(animation)的时候(这个时候执行的就是 shape 个体动画了),就会以用户配置的为准。

动画配置

G2 在 Chart/View,Geometry,Geometry Label 以及组件层次都开放了动画接口,即只要是参与动画的图形元素都可以单独进行动画配置。

Chart

控制着整个图表的动画开关。

  1. // 开启或者关闭 chart 动画
  2. chart.animate(boolean);

> 说明: 当 chart.animate(false) 关闭动画时,该图表所有的元素都不会进行动画,即使用户进行了动画配置。

View

控制着当前整个 View 视图的动画开关。

  1. // 开启或者关闭 view 上的动画
  2. view.animate(boolean);

> 说明: 当 view.animate(false) 关闭动画时,该视图下所有的元素都不会进行动画,即使用户进行了动画配置。

Geometry

包含 Geometry Shapes 以及 Geometry labels.

  1. geometry.animate(false); // Geometry 不执行东湖
  2. geometry.animate(cfg); // 进行具体的动画配置

通过 geometry.animate() 接口,可以进行具体的动画配置,支持的配置属性详见 API。

Geometry label 上的动画配置

  1. // Geometry labels 动画配置
  2. geometry.label('labelField', {
  3. animate: AnimateOption | false,
  4. });

label 上的动画配置类型同 geometry.animate() 接口的参数类型一致,支持的配置属性详见 API。

> 说明: 当 geometry 关闭动画时,即 geometry.animate(false),label 的动画也会关闭。

图表组件

对于图表组件的动画,目前只支持开关操作。

  1. chart.axis('fieldName', {
  2. animate: boolean,
  3. });
  4. chart.annotation().line({
  5. animate: boolean,
  6. });

4.0 内置默认动画函数

G2 默认提供了以下几种动画执行函数,供用户按需使用:

| | ‘fade-in’ | fade-in.gif 渐现动画。 | | ‘fade-out’ | fade-out.gif 渐隐动画。 | | ‘grow-in-x’ | grow-in-x.gif 容器沿着 x 方向放大的矩阵动画,多用于 G.Group 容器类进行动画。 | | ‘grow-in-y’ | grow-in-y.gif 容器沿着 y 方向放大的矩阵动画,多用于 G.Group 容器类进行动画。 | | ‘grow-in-xy’ | grow-in-xy.gif 容器沿着 x,y 方向放大的矩阵动画,多用于 G.Group 容器类进行动画。 | | ‘scale-in-x’ | scale-in-x.gif 单个图形沿着 x 方向的生长动画。 | | ‘scale-in-y’ | scale-in-y.gif 单个图形沿着 y 方向的生长动画。 | | ‘wave-in’ | wave-in-p.gif

wave-in-r.gif 划入入场动画效果,不同坐标系下效果不同。 | | ‘zoom-in’ | zoom-in.gif 沿着图形中心点的放大动画。 | | ‘zoom-out’ | zoom-out.gif 沿着图形中心点的缩小动画。 | | ‘path-in’ | path-in.gif path 路径入场动画。 | | ‘position-update’ | | 图形位置移动动画。 |