2021SC@SDUSC f2源码分析(13)

2021SC@SDUSC

如何按需引用

  1. 群组入场动画
const F2 = require('@antv/f2/lib/core');
const GroupAnimation = require('@antv/f2/lib/animation/group');
F2.Chart.plugins.register(GroupAnimation); // 这里进行全局注册,也可以给 chart 的实例注册
  1. 精细动画版本
const F2 = require('@antv/f2/lib/core');
const Animation = require('@antv/f2/lib/animation/detail');
F2.Chart.plugins.register(Animation); // 这里进行全局注册,也可以给 chart 的实例注册

注意:

  1. 两个版本的动画择其一即可。
  2. 当你引用 require('@antv/f2') 版本时,提供的是精细动画

动画配置详解

动画分类

在 F2 的动画中,围绕图表数据的变化,我们将图形元素的动画划分为以下四种类型:

动画类型解释触发时机
appear图表第一次加载时的入场动画第一次 chart.render()
enter图表绘制完成,数据发生变更后,产生的新图形的进场动画chart.changeData(data)
update图表绘制完成,数据发生变更后,有状态变更的图形的更新动画chart.changeData(data)
leave图表绘制完成,数据发生变更后,被销毁图形的销毁动画chart.changeData(data)

第一次 chart.render() 时会触发 appear 类型的动画,而 chart.changeData(data) 即数据发生变更时,会触发 updateleaveenter 类型的动画。

如果用户使用的是仅包含群组入场动画版本,那么仅提供了 appear 类型的动画。在精细动画版本中,完整提供了以上四种动画类型机制。具体的配置方法在下文进行说明。

chart.animate()

图表动画的整体配置。

  1. chart.animate(false)

关闭图表动画。

  1. chart.animate(cfg)

对 chart 上的图形元素进行具体的动画配置。

  • 参数:cfg
  • 类型: Object
  • 返回: 当前 chart 实例

具体配置参考如下:

chart.animate({
  'axis-label': {
    appear: {
      animation: {String} || {Function}, // 定义动画执行函数
      easing: {String} || {Function}, // 动画缓动函数
      delay: {Number} || {Function}, // 动画延迟执行时间,单位 ms
      duration: {Number}  // 动画执行时间,单位 ms
    }, // 初始化入场动画配置
    update: {}, // 更新动画配置,配置属性同 appear
    enter: {}, // 数据变更后,新产生的图形的入场动画配置,配置属性同 appear
    leave: {} // 销毁动画配置,配置属性同 appear
  }, // 对坐标轴文本进行动画配置
  'axis-tick': {} // 对坐标轴刻度线进行动画配置,配置属性同 axis-label
  'axis-grid': {} // 对坐标轴网格线进行动画配置,配置属性同 axis-label
  'axis-line': {} // 对坐标轴线进行动画配置,配置属性同 axis-label
  line: {} // 对折线图进行动画配置,配置属性同 axis-label
  area: {} // 对面积图进行动画配置,配置属性同 axis-label
  interval: {} // 对柱状图进行动画配置,配置属性同 axis-label
  path: {} // 对路径图进行动画配置,配置属性同 axis-label
  point: {} // 对点图进行动画配置,配置属性同 axis-label
  polygon: {} // 对多边形进行动画配置,配置属性同 axis-label
  schema: {} // 对自定义图形进行动画配置,配置属性同 axis-label
});

关闭动画的方式如下:

// 关闭图表所有动画
chart.animate(false);

// 关闭某种图形元素的动画,如线图 line
chart.animate({
  line: false // 关闭线图动画
});

// 关闭某种图形元素下某一类动画,如线图的出场动画
chart.animate({
  line: {
    appear: false
  }
});

目前对动画开放的图形元素包括:

图形元素名解释
axis-label坐标轴文本
axis-grid坐标轴网格线
axis-tick坐标轴刻度线
axis-line坐标轴线
line折线图
area面积图
interval柱状图
path路径图
point点图
polygon多边形
schema自定义图形

每一种图形元素均包含以上四种动画类型(appear、enter、update、leave),而每一种动画类型,可进行如下属性的配置:

// 对首次出场动画的配置
appear: {
  animation: 'fadeIn', // 执行的具体动画
  easing: 'elasticIn', // 动画缓动函数
  delay: 1000, // 动画延迟执行时间,单位 ms
  duration: 600 // 动画执行时间,单位 ms
}

// 或者直接关闭 appear 类型动画
appear: false
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值