动画

149 阅读3分钟

animation动画

完成自动播放的动画

(1)编写javascript脚本完成自动播放的动画;
(2)可以使用flash计算完成动画设计;
(3)可以使用某些动画标签,比如marquee;
(4)h5提供了canvas技术(绘图技术),来完成动画的设计;
(5)css3提供了一种animation动画可以完成自动播放持续播放的动画。

动画的概念

动画:快速切换连携的图片而达到的流畅的画面效果。
帧数:一秒钟切换图片的数据,数量越多,画面越流畅,60Hz(每秒钟切换60张图片)。
关键帧:每一页的关键的画面。

关键帧

概念:指盒子状态要发生改变的帧,就是设置需要播放的动画的步骤。一个完整的动画会被拆分为多个步骤,每一个步骤就是一个关键帧。
例子:
(1)盒子向右移动500px 有两个关键帧,开始状态和结束状态;
(2)盒子变圆后向右移动500px 有3个关键帧,开始状态-变圆-右移500px;
css动画中,定义关键帧。

动画的基本使用

先定义关键帧,再通过animation调用关键帧。
步骤:
利用@keyframes属性来定义所有关键帧,给动画设置一个名称。
给要使用的盒子添加animation的相关属性,指定动画的名称和执行时长。

定义关键帧

利用@keyframes属性来定义关键帧,这个属性属于css代码,不需要写在任何选择器中。
语法:
定义关键帧
@keyframes 动画名称 {
from {
       开始状态
       }
 to {
       结束状态
       }
    }
还可以使用百分比定义关键帧,百分比代表整个动画在某个百分比时,是什么状态
0% {
    }
20% {
    }
50% {
     }
100% {
     }
使用关键帧
div {
      animation-name:动画名称;
      animation-duration:执行时长;
      }

关键帧在设置过程中,可以使用百分比,from相当于0%,to相当于100%;
每一帧的时间跟两帧之间的百分比有关系,跨度越大,分配的时间越多,跨度越小,分配的时间越少。
计算公式:关键帧的执行时间=两帧之间的差* 总动画的时间;

动画属性

animation动画属性可以控制动画的速率、次数等等操作;
属性:
animation-name:设置动画的名称,需要配合执行时长一起使用;
animation-duration:设置动画的执行时长,默认值为0s;
animation timing-function:设置动画的执行速率,原理是通过贝塞尔曲线来实现的;
          ease:默认值,以低速开始,然后变快,在结束前变慢;
          linear:匀速;
          ease-in:以低速开始;
          ease-out:以低速结束;
          ease-in-out:以低速开始和结束;
          cubic-bezier(x1,y1):贝塞尔曲线
animation-delay:设置动画的延迟时间,默认为0s;
animation-itetation-count:设置动画的执行次数,默认动画只能执行一次;
          n:数字,代表次数;
          infinite:无限次;
animmation-direction:设置动画的执行方向;
          normal:默认,正常播放;
          reverse:反向播放动画;
          alternate:奇数次正向播放动画,偶数次反向播放动画;
          alternate-reverse:奇数次反向播放动画,偶数次正向播放动画;
animation-fill-mode:设置第一帧或最后一帧是否作用在元素上;
          forwards:设置最后一帧作用在元素上,保持结束状态;
          backwards:设置第一帧作用在元素上,保持开始状态;
          both:将第一帧和最后一帧都作用在元素上;
animation-play-state:控制动画是否播放;
          running:默认值,播放
          paused:暂停
animation复合属性
animation:name duration timing-function delay iteration-count direction fill-mode;
animation:动画名称 执行时长 执行速率 延迟时长 执行次数 执行方向 是否保持开始或结束状态;