13.动画样式

在学习动画样式前,我们先来了解下关于动画的定义

动画:   是指由许多帧静止的画而, 以一定的速度连续播放时,肉眼因视觉残像产生错觉,而误以为画面活动的作品;

           为了得到活动的画面,则每一帧上的画面都会有细微的差别; 

从以上的定义来看,动画具备如下特性;

a. 短时间内播放多张静态的画面帧;

b. 每一帧画面中的内容,具备一样的差别;

----------------------------------------------------------------------------------------------------

关于动画在CSS中的应用, 对动画按照触发的情况的不同,分为: 触发式动画和主动式动画;

A. 触发式动画;

    一般以元素默认的样式为第一帧, 在元素的状态类选择器(伪类选择器)中定义元素动画的最后一帧;

   为元素配置相应的动画类属于性,最终达到动画效果的动画;

   动画类属性有如下几种:

    1. transition-duration: 从第一帧到最后一帧的耗时,单位为秒;

    2. transition-delay: 用以定义当伪类选择器样式补触发时, 延时多少秒开始执行动画效果; 默认不延时,即:0

    3. transition-timing-function: 定义在整个动画过程中的变化速率;   一般通过贝塞尔曲线函数进行控制; 

        (贝塞尔典线函数地址: http://cubic-bezier.com)

  上面是独立的控制不同的动画样式,但一般情况下,我们都会一次性的设置好元素的动画样式,

  transition: 元素属性  动画时间  动画时间函数 延时时间, 元素属性  动画时间  动画时间函数 延时时间,.....

  多个属笥的动画样式之间用逗号分隔开

B. 主动式动画

    所谓的主动式动画,当然就是直接自已跑起来的动画,不需要特定的业务或动作去触发的动画;

   主动式动画,需要由开发人员,自行配置好所有的关键帧样式; 进而达到理想所动画效果;

   关于主动式动画的创建方式如下:

   

  之所以在主动式动画中有多个不同的状态, 这主要是依据用户对动画的精细化要求程度来定,

 对于主动式动画效果的引用,是为元素配置 animation-name 来设置主动式样式名称来实现动画效果的;

 关于主动式动画样式,同样有一系列的属性来进行控制, 主要的属性有如下几个:

    1. animation-duration: 动画样式的过渡时间;

    2. animation-timing-function: 动画样式的速率控制; 

    3. animation-delay:动画延时,默认为0

    4. animation-iteration-count: 主动式动画播放的次数;

        如果想要无限次播放,需要将这个值设置为: inifinate;

    5. animation-direction: 在进行多次播放时,用于控制每一次开始播放时,动画的起始位置;

       --> normal: 每一次动画时,都是从第1帧开始播放,

       --> alternate: 基数次时正向播放,偶数次时反向播放;

       --> 另外还有二种控制,但一般不会这样使用

            a. reversr: 每一次都是从最后一帧播放到第1帧;

            b. alternate-reverse: 奇数次时反向播放,偶数次时正向播放;

     6. animation-fill-mode: 用以控制在有限次循环(由animation-iteration-count控制)播放后最终的样式状态;

         --> forwards: 保留最后一帧;

         --> backwards: 保留第1帧;

-------------------------------------------------------------------------------------------------------------------------------------

   各动画参数在不同组合情况下,最终样式效果审核情况如下:

a). 循环播放三次,每次都从第1帧播放到最后一帧,  最终状态取最后一帧的状态

     

b). 循环播放三次,每次都从第1帧播放到最后一帧,  最终状态取第一帧的状态 (与a变化: animation-fill-mode)

     

c.循环播放四次,基数次正向播放,偶数次反向播放,  最终状态取最后一帧或第一帧,效果一样(偶数次时第一帧和最后一帧一样,都是初始状态)

   

 对于主动式动画样式,一般情况下也是一次性设置的,而不会真正的一个一个设置,        

animation: 样式名 动画时间 动画速率  延时  播放次数  重复播放时的方式  有限次播放时的最终状态

在定义主动式动画时, 如果配置了状态值,但没有配置对应的样式值,则默认为元素的默认样式;

** 如下图, 我们在主动式动画中,只定义了一个状态,即50%时的样式,

   那0%,100%的状态时是什么状态呢???

   从下图中,我们可以看到, 0%和100%时的样式都是默认的红色样式,高度为200px;

   (需特别注意一下这个50%是什么意思   <动画时间的50%>)

 

       为确认关于状态样式中关于百分比的理解,我们再来看一个图

       

      从上图可以看出,整个动画其实是分成了二个不同的部分,

     第一部分是从0%到90%的状态变化, 元素从高度200px, 变成了高度500px

     第二部分,从90%到100%的状态变化,元素从高度500px,变成了高度200px;

     这二个部分都是实现了高度差300px的变化,但是前后二个阶段,动画的速度是不一样的,  第一部分比较从容,第二部分很快就完成了变化;

猜你喜欢

转载自www.cnblogs.com/jieling/p/11005738.html