flip 动画技术
前言
- 尺寸、位置动画会触发重排,导致动画不流畅、动画启动慢
- flip 技术主要的目的是将常见的尺寸(
width、height
)、位置(top、left...
)动画映射为性能开销小的transform
动画
基本概念
- First: 元素的初始状态
- Last:元素的最终状态
- Invert:反转
- Play:开启动画
基本思路
- First:获取元素的初始状态
- Last:设置元素的状态为运动结束的最终状态
- Invert:通过设置相反的
transform
值将元素从最终状态反转为初始状态 - Play:设置元素
transition
运动属性(缓动、时长等),再清空transform
动画来启动动画 - 可选的 Clean:动画结束,清除操作
例子
1 | // 获取初始位置 |
实际 demo
1 |
|
其他 demo
http://vuejs.github.io/vue-animated-list/example.html
https://codepen.io/davidkpiano/pen/305a618d4dd75cbe8423183c70d6a43e