transition和animation的区别

一、transition(过渡、转变的意思)

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

1. transition-property:设置过渡效果的属性名称(默认值是all);

2. transition-duration:设置过渡完成所需要的时间(默认值是0);

3. transition-timing-function:设置过渡速度效果曲线(默认值是ease);

4. transition-delay:设置过渡的开始时间(默认值是0);

语法:transition: property duration timing-function delay;

注意:这里transition-duration是必须要填的,不填默认为是0,没有过渡效果。

transition-property 需要过渡的属性,也可以是all,不能用block,none等
transition-duration 指定从一个属性到另一个属性过渡所要花费的时间。默认值为0,为0时,表示变化是瞬时的,看不到过渡效果
transiton-timing-function 就是过渡的动画类型。可用的类型有liner(匀速)、ease-in(减速)、ease-out(加速)ease-in-out(先加速再减速)、cubic-bezier:三次贝塞尔曲线,可以定制
transition-delay 指定检测到过渡行为之后延迟一定时间后才开始进行执行

二、animation(动画、活力的意思)

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

1. animation-name:设置绑定到选择器的@keyframem名称(默认值是none);

2. animation-duration:设置完成动画所花费的时间(默认值是0);

3. animation-timing-function:设置动画的速度曲线(默认值是ease);

4. animation-delay:设置动画延迟几秒开始(默认值是0);

5. animation-iteration-count:设置动画播放的次数(默认值是1);

6. animation-direction:设置时候轮流反向播放动画(默认值是normal);

语法:animation: name duration timing-function delay iteration-count direction;

注意:这里animation-duration是必须要填的,不填默认是0,就不会播放动画了。

属性描述
animation-name 用来调用@keyframes定义好的动画,与@keyframes定义的动画名称一致
animation-duration 规定动画完成一个周期所花费的秒或毫秒。默认是 0
animation-timing-function 速度曲线,和transition-timing-function一样,可用的类型有liner(匀速)、ease-in(减速)、ease-out(加速)ease-in-out(先加速再减速)、cubic-bezier:三次贝塞尔曲线,可以定制
animation-delay 规定动画何时开始,默认是 0
animation-iteration-count 规定动画被播放的次数。默认是 1
animation-direction normal 默认值,如果设置为normal时,动画每次循环都是向前(即按顺序)播放,alternate(轮流),动画播放在第偶数次向前播放,第奇数次向反方向播放(animation-iteration-count取值大于1时设置有效)
animation-play-state running,可以通过该值将暂停的动画重新播放,这里的重新播放不是从元素动画的开始播放,而是从暂停的那个位置开始播放,paused,暂停播放
animation-fill-mode 默认情况下,动画结束后,元素的样式将回到起始状态,animation-fill-mode属性可以控制动画结束后元素的样式。主要具有四个属性值:none(默认,回到动画没开始时的状态。),forwards(动画结束后动画停留在结束状态),backwords(动画回到第一帧的状态),both(根据animation-direction轮流应用forwards和backwards规则)

三、区别

1. transition是一个过渡的效果,没有中间状态,需要设置触发事件(如hover等)才能执行;

2. animation是一个动画的效果,有多个中间帧,可以在任意一个中间帧设置状态,不需要设置触发事件就能执行。

transform

首先要注意的是transform属性是静态属性,只要写进style里就会直接显示生效,不会出现动画过程
通过使用transform属性,能够对元素进行移动(translate)、缩放(scale)、旋转(rotate)、翻转(skew),更多详细参数可以参考CSS3 transform 属性

总结

 

区别transitionanimation
是否能自动执行 不能,需要事件触发,比如hover
能否重复发生 不能,除非在一次触发
能否包含多个状态 不能,只有开始和结束状态 能,比如从0% 到100%,任意指定过渡状态
能否暂停 不能,一次性 能,比如hover事件触发暂停
能否定义速度曲线
能否定义某个属性值过渡


————————————————
版权声明:本文为CSDN博主「simple-xiao」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/simple_Xsg/article/details/124026017

posted @ 2022-12-04 22:08  小饿爽  阅读(398)  评论(0编辑  收藏  举报