logo

F2

  • 教程
  • 组件API
  • 图表示例
  • 所有产品antv logo arrow
  • 5.0.3
  • 快速上手
  • 图表组成
  • 图形语法
  • 数据 - Data
  • 度量 - Scale
  • 坐标系 - Coordinate
  • 图形标签 - Shape
  • 绘图属性 - Style
  • 动画属性 - Animation
  • 事件属性 - Event
  • 图形使用 - JSX
  • 组件介绍 - Component
  • 多端/框架 - Framework
    • 多端适配
    • 如何在 React 中使用
    • 如何在 Vue 中使用
    • 如何在小程序中使用
    • 如何在 Node.js 中使用
    • 配置 jsx transform
    • 使用 svg 渲染
  • 进阶 - Advanced
    • 自定义 View
  • 常见问题 - Question
    • 和 React 同时使用时,TS 类型报错

动画属性 - Animation

上一篇
绘图属性 - Style
下一篇
事件属性 - Event

Resources

Ant Design
Galacea Effects
Umi-React 应用开发框架
Dumi-组件/文档研发工具
ahooks-React Hooks 库

社区

体验科技专栏
seeconfSEE Conf-蚂蚁体验科技大会

帮助

GitHub
StackOverflow

more products更多产品

Ant DesignAnt Design-企业级 UI 设计语言
yuque语雀-知识创作与分享工具
EggEgg-企业级 Node 开发框架
kitchenKitchen-Sketch 工具集
GalaceanGalacean-互动图形解决方案
xtech蚂蚁体验科技
© Copyright 2025 Ant Group Co., Ltd..备案号:京ICP备15032932号-38

Loading...

F2 动画定义与 Web Animations API 靠齐,除了组件层面,每个图形标签也都可以添加自定义动画。目前只支持基于 Keyframe 的动画,可定义动画执行阶段,以及变化效果 KeyframeEffect。

动画执行阶段分为 appear,update 以及 leave:

  • appear:初始化时的入场动画 , render 阶段.
  • update:数据更新时的更新动画 , props 发生改变.
  • leave:销毁前的离场动画 , destroy 阶段.

每个阶段都可以配置相应的 animation

属性

属性名类型描述
easingstring缓动函数,动画持续效果
durationnumber动画持续时间
delaynumber开始动画前的延迟
fill可能值为 'none','forwards','backwards','both'定义图形在动画执行前后的表现
iterationsnumber循环次数,默认值为 1,Infinity 为无限循环
iterationStartnumber从何处执行动画,默认为 0
property[]声明需要变换的属性
startKeyframe开始帧状态
endKeyframe结束帧状态
clipClip裁剪区域动画,可参见clip

easing

缓动函数,默认为 linear,并且内置提供以下缓动函数,可参考效果

constantacceleratedecelerateaccelerate-deceleratedecelerate-accelerate
linearease-in / inease-out / outease-in-out / in-outease-out-in / out-in
easein-sineout-sinein-out-sineout-in-sine
stepsin-quadout-quadin-out-quadout-in-quad
step-startin-cubicout-cubicin-out-cubicout-in-cubic
step-endin-quartout-quartin-out-quartout-in-quart
in-quintout-quintin-out-quintout-in-quint
in-expoout-expoin-out-expoout-in-expo
in-circout-circin-out-circout-in-circ
in-backout-backin-out-backout-in-back
in-bounceout-bouncein-out-bounceout-in-bounce
in-elasticout-elasticin-out-elasticout-in-elastic
spring / spring-inspring-outspring-in-outspring-out-in

Keyframe

目前支持变换的属性有:

属性名类型描述
transformstring和 CSS Transform 保持一致
opacitynumber透明度
strokeOpacitynumber描边透明度
fillstring填充色
strokestring描边色
lineWidthnumber线宽
rnumberCircle 的半径
rx/rynumberEllipse 的半径
widthnumberRect/Image 的宽度
heightnumberRect/Image 的高度
x1/y1/x2/y2numberLine 的端点坐标
offsetDistancenumber路径偏移,和CSS Offset保持一致
lineDashnumber实线和间隔的长度
lineDashOffset[number, number]设置虚线的偏移量,和Canvas lineDashOffset保持一致,可以实现蚂蚁线的效果
pathstringPath 的定义,可做形变动画

使用方法

<text
style={{
text: `测试`,
}}
animation={{
appear: {
easing: 'linear',
duration: 450,
property: ['x', 'y'],
start: {
x: 0,
y: 0,
},
end: {
x: 100,
y: 100,
},
},
update: {
{
easing: 'quadraticOut',
duration: 450,
clip: {
type: 'rect',
property: ['width'],
style: {
x: 100,
y: 100,
height: 20,
},
start: {
width: 0,
},
end: {
width: 50,
},
},
}
},
leave: {},
}}
/>

其他动画

路径动画

让图形沿着某个路径移动,在 css 中可通过MotionPath实现,F2 可通过图形标签上设置 offset 属性实现,目前支持 和 。

<circle
style={{
fill: '#808080',
r: 10,
offset: {
type: 'polyline',
style: {
points: [
[0, 3],
[50, 10],
[130, 80],
[250, 40],
],
},
},
}}
animation={{
appear: {
easing: 'quadraticOut',
duration: 1000,
property: ['offsetDistance'],
start: {
offsetDistance: 0,
},
end: {
offsetDistance: 1,
},
},
}}
/>

F2 在组件 Line 中内置了该功能,提供 endView 接口,可设置沿着线段移动的元素,具体可见 demo