ITPub博客

首页 > IT职业 > IT图书 > CSS3新特性(03):Animation

CSS3新特性(03):Animation

IT图书 作者:wanxud 时间:2021-09-09 09:51:21 0 删除 编辑

CSS3中动画涉及到三个属性,一个是Transform:变形;一个是Transition:过渡,一个是Animation:动画。其中Transform、Animation可以搭配着使用,实现复杂动画,Transition可以实现简单动画。

有时候,Transition过渡不能解决我们想要的动画效果,我们希望动画的过渡程度更加复杂有层次,这个时候就要用到Animation。

当然CSS3中的Animation与HTML5中的Canvas绘制动画又不同,Animation只应用在页面上已存在的DOM元素上,做出来的动画相比较Flash、JavaScript及jQuery制作出来的动画效果稍显粗糙些。

Animation有下面这些属性:

属性 描述
animation 简写属性,用于在一个属性中设置8个动画属性
animation-name 规定需要绑定到选择器的keyframe名称
animation-duration 规定完成动画所花费的时间,以秒或毫秒计。
animation-timing-function 规定动画的速度曲线。跟transition一样。
animation-delay 规定在动画开始之前的延迟。
animation-iteration-count 规定动画应该播放的次数。默认1,也可以是infinite无限次
animation-direction 规定是否应该轮流反向播放动画。值为nomalreversealternatealternate-reverse。意思分别是正方向反方向往返反方向的往返。
animation-fill-mode 规定动画开始的时候是否要保持开始的第一帧,结束是否保持最后一帧。其值为nonebackwardsforwardsboth。分别意思是不保持,开始保持,结束保持,和都保持。通常情况下是both设置。
animation-play-state 规定动画暂停还是播放,值为pausedrunning。一般搭配鼠标hover时候使用,比如鼠标移上去就动了的效果,就设置running。

(1)语法

animation:none;animation:abc 2s ease 0s 1 nomal none running;animation:abc 2s;animation:abc 1s 2s both,abcd 2s both;

图片描述

其中abc就是keyframe名称。keyframe是什么呢?我们把他叫做“关键帧”,玩过flash的朋友可能对这东西不会陌生。前面我们在使用transition制作transition过渡效果时,就包括了初始属性和最终属性,一个开始执行动作时间和一个延续动作时间以及动作的变换速率。

如果我们要控制的更细一些,比如要第一个时间段执行什么动作,第二个时间段执行什么动作,换到flash中说,就是第一帧执行什么动作,第二帧执行什么动作,这样用Transition就很难实现了,此时我们也需要这样的一个“关键帧”来控制。CSS3的Animation就是由“keyframes”这个属性来实现这样的效果。

如何定义keyframe的名称呢?有两种写法:

@keyframes abc{      from{opacity:1;height:100px;}      to{opacity:0.5;height:200px;}
}
 
@keyframes abc{
    0%{opacity:1;height:100px;}
    50%{opacity:0.8;height:200px;}
   100%{opacity:0.5;height:300px;}
}

分别是定义开始的状态属性参数,定义中间的状态属性参数,和定义结束时候的状态属性参数。当然如果属性参数是一样的,我们可以组合起来写,看下面:

@keyframes flash{
0%,50%,100%{opacity:1;}
25%,75%{opacity:0;}
}

定义了keyframes名称用来干嘛呢,就是下面的用处了,把 "keyframes名称" 捆绑到元素中去,比如div。

div {animation:abc 0.5s both;animation:flash 0.5s both;animation:abc 0.5s both,flash 0.5s both;
}

Animation可以综合写一行,把所有的表格中的属性按照表格里上下的顺序写,也可以分开Animation的每个属性分开单独写。

(2)实例

图片描述

.tools_iicon:hover{animation:rotate360 2s;}
@keyframes rotate360{from{transform:rotate(0deg);}to{transform:rotate(360deg);}
}

后记:这是原文地址《CSS3新特性(03):Animation》,欢迎来我个人博客逛逛!



作者:荷小音
链接:https://www.jianshu.com/p/ba3e9b976097


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/3451/viewspace-2813475/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2019-08-30

  • 博文量
    100
  • 访问量
    1144