首页 > 其他分享 >transition和animation的区别

transition和animation的区别

时间:2022-12-04 22:25:17浏览次数:29  
标签:动画 播放 区别 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

标签:动画,播放,区别,transition,animation,默认值,属性
From: https://www.cnblogs.com/xiaoeshuang/p/16950978.html

相关文章

  • requestAnimationFrame和setTimeOut的区别
    requestAnmationFrame也是隔一段时间调用一次。只不过它的时间间隔是浏览器最佳刷新时间,不太短,不太长。参考:https://blog.csdn.net/weixin_44730897/article/details/1165......
  • 转发和重定向的区别
    转发:request重定向:response问题解析:重定向是浏览器发送请求并收到响应以后再次向一个新地址发送请求,转发是服务器收到请求后,为了完成响应,转到另一个资源(servlet)重定......
  • 4.指针和引用的区别详解
    前言指针和引用在形式上很好区别,在C++中相比于指针我们更喜欢使用引用,但是它们的使用场景又极其类似,它们都能直接引用对象,对对象进行处理,那么究竟为什么会引入引用?什么时......
  • 线程和进程的区别是什么?
    ”进程是资源分配的最小单位,线程是CPU调度的最小单位“这样的回答感觉太抽象,都不太容易让人理解。做个简单的比喻:进程=火车,线程=车厢线程在进程下行进(单纯的车厢无法运......
  • uniapp和vue的区别
    https://m.php.cn/article/481418.html uniapp和vue的区别uni-app可以编译到(头条,支付宝,微信,QQ,百度)小程序,安卓版,ios版,h5版。通过打包实现一套代码多端运行;vue在web上是......
  • UDF , UDAF , UDTF的区别,以及他们分别解决了什么。
    Hive自定义函数包括三种UDF、UDAF、UDTF,让我们来看看他们的区别和分别解决的什么问题:......
  • js forEach和 map 区别
    Array.prototype.forEach()forEach()方法对数组的每个元素执行一次给定的函数。forEach()方法按升序为数组中含有效值的每一项执行一次callbackFn函数,那些已删除或者......
  • java 线程池中 execute 和 submit 方法的区别
    ThreadPoolExecutorUML类图execute方法定义publicinterfaceExecutor{voidexecute(Runnablecommand);}submit方法定义publicinterfaceExecutorServiceextends......
  • 博客园 文章和随笔区别
    之前一直对随笔和文章比较迷惑,不太清楚它们之间的区别,今天仔细了解一下,发现一直误解了这两个概念。首先从内容上区分一下随笔和文章随笔内容形式比较随意,往往是作者......
  • java中== 和equals的区别
    本文主要介绍==和equals的区别1.==比较的是地址,引用类型(除了String类)的时候,只要不是同一个对象,就不是同一个地址,String类型的时候,如果new出来两个对象,那么也是不同地......