CSS3之动画

作者: LemonnYan | 来源:发表于2018-06-10 00:19 被阅读36次

一、CSS3动画简介

animation实现动画主要由两个部分组成:

  • 通过类似Flash动画中的关键帧来声明一个动画;
  • 在animation属性中调用关键帧声明的动画,从而实现一个更为复杂的动画效果

1、关键帧

在CSS3中,把@keyframes称为关键帧。

由@keyframes开头,后面紧跟着“动画名称”加上一对花括号“{...}”,括号中是不同时间段样式规则。

一个@keyframes中的样式规则是由多个百分比构成的,如0%~100%。可以使用“from”、“to”代表一个动画从哪开始,到哪结束。from就相当于0%,to相当于100%。

语法:

@keyframes IDENT{
  from{
   /*css样式*/
  }
percentage{
   /*css样式*/
  }
to{
   /*css样式*/
  }
}

可以将关键词from和to换成百分比:

@keyframes IDENT{
  0%{
   /*css样式*/
  }
  percentage{
   /*css样式*/
  }
  100%{
   /*css样式*/
  }
}

其中IDENT是动画名称,可以取任意定义的动画名称。percentage是一个百分比值,用来定义某个时间段的动画效果。

2、应用动画

要在CSS中为元素应用动画,首先要创建一个已命名的动画,然后将它附加到该元素属性声明块中的一个元素上。这个要创建的动画,必须使用@keyframes声明。
示例:

      /*1、声明动画*/ 
      @keyframes wobble{
        0%{
            margin-left:100px;
            background:green;
        }
        40%{
            margin-left:150px;
            background:orange;
        }
        60%{
            margin-left:75px;
            background:blue;
        }
        100%{
            margin-left:100px;
            background:red;
        }
      }
      /*2.应用动画*/
      .demo{
        margin-left:100px;
        background:blue;
        animation:wobble .2s ease-in;
      }

二、CSS3动画属性

CSS3共具有八个子属性。
语法:animation:<animation-name>|<animation-duration>|animation-timing-function>|<animation-delay>|<animation-iteration-count>|<animation-direction>|<animation-play-state>|animation-fill-mode>

参数说明:

  • animation-name:指定关键帧的名字,必须对应一个@keyframes规则
  • animation-duration:设置动画播放所需时间,一般以秒为单位
  • animation-timing-function:设置动画播放方式
  • animation-delay:指定动画开始时间,一般以秒为单位
  • animation-iteration-count:指定动画播放的循环次数
  • animation-direction:指定动画的播放方向
  • animation-play-state:控制动画的播放状态
  • animation-fill-mode:设置动画的时间外属性

所有的属性都可以合在一起写,中间用空格隔开。

1、调用动画

animation-name主要用来调用动画,调用的是通过@keyframes关键帧定义好的动画。
语法:animation-name:none|IDENT,主要有两个值。

  • none:默认值,没有任何动画效果,可以用于覆盖任何动画。
  • IDENT:有@keyframes定义的动画名称

2、设置动画播放时间

animation-duration用来设置CSS3动画播放时间,语法:animation-duration:<time>,默认值为0,单位为秒,指定元素播放动画所持续的时间。

3、设置动画播放方式

animation-timing-function是指元素根据时间的推进来改变属性值的变换速率。和transition中的transition-timing-function类似。

4、设置动画开始播放的时间

animation-delay用来定义动画开始播放的时间,是延迟还是提前等。换句话说,animation-delay用来定义在浏览开始执行动画之前的等待时间。

5、设置动画播放次数

animation-iteration-count属性主要用来定义动画播放多少次,值通常为整数。
语法: animation-iteration-count:infinite|<number>,如果取值为infinite,动画将会无限次播放。

6、设置动画播放方向

animation-direction用来指定动画播放的方向,语法:animation-direction:normal|alternate,主要有两个值。

  • normal:默认值,动画每次循环都是向前播放
  • alternate:动画播放为偶数次则向前播放,为奇数次则向反方向播放

7、设置动画的播放状态

animation-play-state属性用来设置元素动画的播放状态,语法:animation-play-state:running|paused,主要有两个值。

  • running:默认值,将暂停的动画重新播放,重新播放不一定是从元素动画的开始播放
  • paused:将正在播放的动画暂停,如果暂停了动画,元素的样式将回到最原始设置状态

8、设置动画时间外属性

animation-fill-mode定义在动画开始之前和动画结束之后发生的操作。语法:animation-fill-mode:none|forwards|backwards|both

  • none:默认值,表示动画按预期进行和结束,在动画完成其最后一帧时,动画会反转到初始帧处
  • forwards:动画在结束后继续应用最后关键帧的位置
  • backwards:在向元素应用动画样式时迅速应用动画的初始帧
  • both:动画同时具有forwards和backwards效果

默认情况下,动画不会影响它的关键帧之外的属性,但使用animation-fill-mode属性,可以修改动画的默认行为。

相关文章

  • 网页高级知识点(三)

    CSS3 transition动画 CSS3 transform变换 CSS3 animation动画

  • 07day

    CSS3动画 CSS3 @keyframes 规则如需在 CSS3 中创建动画,您需要学习 @keyframes ...

  • 08_dayCSS动画

    CSS3新增的功能有:过渡和动画,阴影和圆角 css3过渡动画: css3都有哪些新增的东西 : 过度,动画,阴影...

  • CSS3 动画

    CSS3 动画CSS3,我们可以创建动画,它可以取代许多网页动画图像,Flash动画,和JAVAScripts。 ...

  • 当ios遇上css3动画系列(2) --ios动画之flash

    当ios遇上css3动画系列(2) --ios动画之flash 闪烁 这篇文章来看下flash闪烁动画的。上css...

  • CSS3 动画

    动画属性 动画(animation)是CSS3新增的属性,动画属性可以为元素创建动画,CSS3以前在网页上实现动画...

  • css3动画

    css3动画 CSS3 可以创建动画,它可以取代许多网页动画图像、Flash 动画和 JavaScript 实现的...

  • 纯CSS3绘制的逼真,呆萌,超酷的CSS3动画

    纯CSS3人物行走动画 逼真炫酷CSS3动画 CSS3实在是太强大了,今天分享的CSS3动画非常神奇,它可以模拟人...

  • 关于js动画和css3动画的差异性你了解吗?请简单谈一下

    css3动画:css3之后添加了transform动画计算函数,所以实现动画更为简单方便,并且transform矩...

  • 过度动画

    css3过度动画 css3都有哪些新增的东西 : 过度,动画,阴影,圆角; transition : width ...

网友评论

    本文标题:CSS3之动画

    本文链接:https://www.haomeiwen.com/subject/icbxeftx.html