jQuery中提供了一些常用的动画,拜强势的PM和UX所赐,在他们威逼利诱之下也让我逐渐熟悉了jQuery动画的某些用法。
在具体说之前,不妨先来猜测一下,如果让我自己造一个专门的Animation的轮子,我想至少要满足一下功能:
1 简单的常用动画,要足够简单–如hide,show,toggle…
2 能对简单的动画进行组合,组合出比较复杂的动画,并且对整个动画执行的各个关键帧,要能控制和截断动画等操作
3 需要一个代完整参数的仿射变换的函数,就像cocoa中的CGAffineTransform
一样:1
2
3
4struct CGAffineTransform {
CGFloat a, b, c, d;
CGFloat tx, ty;
};
并且要映射成CSS
如果上述这些基本需求能满足,那么基本上这个地球上存在的能想到的动画都基本能实现,具体实现上由于帧动画和组合动画的要求,自然需要一个统一的动画队列,甚至是动画缓存池,要以对各个动画生命周期的控制
事实上jQuery设计者们都不是吃素的,他们为其提供了远超上以上需求的动画API,只是很多时候我们没有去仔细研究罢了