CSS animation 与 CSS transition 有何区别

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CSS animation 与 CSS transition 有何区别相关的知识,希望对你有一定的参考价值。

一、指代不同

1、animation :属性是一个简写属性,用于设置六个动画属性。

2、transition:属性是一个简写属性,用于设置四个过渡属性。

二、特点不同

1、animation :animation: name duration timing-function delay iteration-count direction;规定需要绑定到选择器的 keyframe 名称。规定完成动画所花费的时间,以秒或毫秒计。

2、transition:transition: property duration timing-function delay;规定设置过渡效果的 CSS 属性的名称。规定完成过渡效果需要多少秒或毫秒。


三、要求不同

1、animation :请始终规定 animation-duration 属性,否则时长为 0,就不会播放动画了。

2、transition:始终设置 transition-duration 属性,否则时长为 0,就不会产生过渡效果。


参考资料来源:百度百科- CSS3

参考资料来源:百度百科-CSS语法

参考技术A 1、animation多两个参数 循环和动画方式

2、transition 不能自行触发,通过hover等动作,或者结合js进行触发。animation可以自行运行
3、transition可控性相对较弱,只能够指定起始和结束的状态,而animation可以定义多个关键帧
4、动画在运行结束之后,需要回到初始状态
5、transition的作用,可以用一句话来概括“平滑改变CSS值”
参考技术B Transition作用是指定了某一个属性(如width、left、transform等)在两个值之间如何过渡,他包括transition-property、transition-duration、transition-timing-function、transition-delay等。
如果某一个元素指定了Transiton,那么当其某个属性改变的时候就会按照Transition指定的方式进行过渡,动画就这么产生了。
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指定如何改变不同的属性值,才实现了动画。
参考技术C Transition作用是指定了某一个属性(如width、left、transform等)在两个值之间如何过渡,他包括transition-property、transition-duration、transition-timing-function、transition-delay等。
如果某一个元素指定了Transiton,那么当其某个属性改变的时候就会按照Transition指定的方式进行过渡,动画就这么产生了。
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指定如何改变不同的属性值,才实现了动画。本回答被提问者和网友采纳

以上是关于CSS animation 与 CSS transition 有何区别的主要内容,如果未能解决你的问题,请参考以下文章

CSS animation 与 CSS transition 有何区别

如何将 ReactCssTransitionGroup 与 animate.css 集成?

如何让 Animate.css 与 Tailwind 的 @responsive 指令一起使用?

CSS animation 与 CSS transition 有何区别

CSS动画总结与呼吸灯效果

CSS3实践之路:CSS3的过渡效果(transition)与动画(animation)