区别Transform、Transition、Animation

另一篇参考文章:http://www.7755.me/Article/CSS3/39/

近来上班之外就是研究研究CSS动画,下面是第一阶段总结。话说为加强记忆,实则想抛砖引玉!

 
标题直译一下就是:变形、过渡、动画。好像都是用来实现CSS动画的!是的,不过至于他们分别做什么用,大概会迷惑吧?反正我自己是迷惑了很久(就这样的人了)。要分清他们之间的区别,得跳出“动画”这么一个概念来谈谈。
 
首先是Transform,变形。
这货和动画根本就没关系。。什么?CSS3新增的哦,很多动画都看到他。。没错,很多动画都有,所以很容易迷惑,其实没有他同样也可以做动画,等下会说到。那么这货是什么呢?

Transform定义的只是普通的CSS3属性,普通到和width、height没太大区别,不同的是他比其它CSS属性更犀利,有了他我们可以实现变形、旋转、缩放、移位及透视等功能,通过一系列功能的组合我们可以实现很炫酷的静态效果(非动画),最直观的如一个透视的3D盒子。这是一个非常重要的CSS3新增属性!

 
其次是Transition,过渡。
Transition作用是指定了某一个属性(如width、left、transform等)在两个值之间如何过渡,他包括transition-property、transition-duration、transition-timing-function、transition-delay等。
如果某一个元素指定了Transiton,那么当其某个属性改变的时候就会按照Transition指定的方式进行过渡,动画就这么产生了。
 
最后是Animation,动画。
Animation也是通过指定某一个属性(如width、left、transform等)在两个值之间如何过渡来实现动画的,与Transition不同的是,Animation可以通过keyframe显式控制当前帧的属性值,而Transition只能隐式来进行(不能指定每帧的属性值),所以相对而言Animation的功能更加灵活。另外一个区别是Animation通过模拟属性值改变来实现动画,动画结束之后元素的属性没有变化;而Transition确实改变了元素的属性值,动画结束之后元素的属性发生了变化;这一点,这在实际应用中会产生很大的区别,也决定了二者各有春秋。
Animation模块包括了animation-name、animation-duration、animation-timing-function、animation-delay、animation-iteration-count、animation-play-state等属性。
 
其实说这么多,一句话就是:Transform和width、left一样,定义了元素很多静态样式,只不过通过Transition和Animation指定如何改变不同的属性值,才实现了动画。
 
以上的详细的用法、例子会在另外一篇文章中详细说明,等不急可移步W3C。

概念都不是很复杂,关键是如何通过这些去实现有价值、实用的产品。

原文地址:https://www.cnblogs.com/mysic/p/5190981.html