CSS3属性中有关于制作动画的三个属性:Transform,Transition,Animation。前面已经介绍过Transform和Transition了,这里我们来学习Animation动画。通过CSS3,我们能够创建动画,可以在许多网页中取代动画图片、flash动画以及JavaScript。

1  关键帧keyframes

如需在CSS3中创建动画,我们需要先学习@keyframes规则。前面所提到transition制作的过渡效果,包括了初始属性和最终属性,一个开始执行动作时间和一个延续动作时间以及动作的变换速率,其实这些值都是一个中间值。如果我们想要控制得更细一些,比如我们要第一个时间执行什么动作,第二个时间执行什么样的动作(就如flash中说的第一帧要执行什么,第二帧要执行什么动作),这样用transition就很难实现了,此时我们就需要这样的一个“关键帧”来控制。那么CSS3的animation的“keyframes”这个属性来实现这样效果。

@keyframes规则用于创建动画,在@keyframes中规定某项CSS样式,就能创建由当前样式逐渐改为新样式的动画效果。@keyframes的格式如下:

@keyframes动画名称{

     from{

properties: properties value;

}

percentage{

properties: properties value;

}

to{

properties: properties value;

}

}

或者

@keyframes动画名称{

     0%{

properties: properties value;

}

percentage{

properties: properties value;

}

100%{

properties: properties value;

}

}

其中percentage是百分比值,我们可以添加许多个这样的百分比,properties为css的属性名,比如说left,background等,value就是相对应的属性的属性值。值得一提的是,我们from和to 分别对应的是0%和100%。这个我们在前面也提到过了。

一起来看一个简单的实例,代码如下:

CSS animation动画效果将会影响元素相对应的css值,在整个动画过程中,元素的变化属性值完全是由animation来控制,动画后面的会覆盖前面的属性值。如上面例子:因为我们这个案例只是在不同的时间段改变了div的背景色和宽度,其默认值是:width:100px;background:red;但当我们在执行动画“from”时,div属性发生改变:width:100px,background:red;当执行到50%时,属性变成了:width:200px;background:blue;当动画 执行到“from”时,属性改变:width:400px;background: green;此时动画将完成,那么width和background两个属性值将是以“to”时的为主,他不会产生叠加效果,只是一次一次覆盖前一次出现的css属性。就如我们平时的css一样,最后出现的权根是最大的。当动画结束后,样式回到默认效果。下面是该动画过程的截图,如图1所示:

图1  animation动画执行

2  animation动画属性

animation的动画属性如表1-32:

表1-32  animation属性及描述

animation的动画属性包含必要属性和可选属性。必要属性包括animation-name(动画名称)、animation-duration(动画持续时间)、animation-play-state(播放状态),其余属性为可选属性。

对于上表中属性的设置,我们可以分别设置。这里以animation-timing-function规定动画的速度曲线为例。修改动画的速度曲线为“ease-in-out”,使动画先加速然后减速,修改wrap的CSS代码如下:

其余的动画属性也同样设置,读者感兴趣的话,可以为每个动画属性设置不同取值来深入了解animation。

IT兄弟连 HTML5教程 CSS3属性特效 动画-animation的更多相关文章

  1. IT兄弟连 HTML5教程 CSS3属性特效 文字描边

    用CSS3实现的文字描边效果,一个CSS3文字特效实例,字体可以自己随意改,字体颜色也可以自己改.IE9以下浏览器无效果,所以提醒大家测试时候要使用Google Chrome.-webkit-text ...

  2. IT兄弟连 HTML5教程 CSS3属性特效 小结及习题

    本章小结 CSS3新增了许多属性,CSS3样式新增了一种颜色模式rgba用来制作透明色,比CSS的颜色模式多了一个透明度的设置.文字的CSS3特效有文字阴影.文字描边.文字排版和文字省略等.另外,CS ...

  3. IT兄弟连 HTML5教程 CSS3属性特效 transition过渡

    CSS3的transition允许css的属性值在一定的时间区间内平滑地过渡.这种效果可以在鼠标单击.获得焦点.被点击或对元素任何改变中触发,并圆滑地以动画效果改变CSS的属性值. transitio ...

  4. IT兄弟连 HTML5教程 CSS3属性特效 新增颜色模式

    对于设计人员和开发人员来说,CSS一直是web设计过程中重要的一部分.网页外观主要由CSS控制,编写CSS代码可以任意改变我们的网页布局以及网页内容的样式.随着CSS3的出现以及越来越多的浏览器对它的 ...

  5. IT兄弟连 HTML5教程 CSS3属性特效 3D变换3

    5  3D旋转 在三维变形中,我们可以让元素在任何轴旋转.为此,CSS3新增了三个旋转函数:rotateX().rotateY()和rotateZ().使用rotateX()函数允许一个元素围绕X轴旋 ...

  6. IT兄弟连 HTML5教程 CSS3属性特效 3D变换2

    3  perspective-origin景深基点 perspective-origin景深基点属性时3D变形中另一个重要属性,主要用来决定perspective属性的源点角度.它实际上设置了X轴和Y ...

  7. IT兄弟连 HTML5教程 CSS3属性特效 3D变换1

    3D变换较2D变换多了一下的转换属性,3D转换属性及描述如表1: 表1  3D转换属性 3D的转换方法如表2: 表2  3D转换方法     1  transform-style transform- ...

  8. IT兄弟连 HTML5教程 CSS3属性特效 2D变换2

    3  scale() 方法 通过scale() 方法,元素的尺寸会增加或减少,根据给定的宽度(X轴)和高度(Y轴)参数.缩放scale()函数让元素根据中心原点对对象进行缩放.默认值是1,因此0.01 ...

  9. IT兄弟连 HTML5教程 CSS3属性特效 2D变换1

    通过CSS3转换,能够对元素进行移动.缩放.转动.拉长或拉伸.它如何工作?转换是使元素改变形状.尺寸和位置的一种效果.CSS3转换包括2D转换和3D转换,本小结我们来了解2D变换的转换方法. 转换属性 ...

随机推荐

  1. MySql简单的增删改查语句 js

    最近在项目中需要连接数据库,做增删改查的功能,sql语句整理做了以下记录(基于NodeJs,注:data为你的真实数据): (一)新增插入表中数据: sql: 'insert into work(表名 ...

  2. maven中的setting文件

      localRepository默认jar包下载到本地哪个目录下 pluginGroups 把自己的插件放在这里进行管理 这样不用写groupId和artifactId     一个生命周期包含很多 ...

  3. Forrester:华为云容器是容器混合云最佳选择

    近日,国际权威咨询机构Forrester发布<The Forrester New WaveTM: Public Cloud Enterprise Container Platforms, Q3 ...

  4. vars()

    返回一个字典,包含所有在本函数调用时存在的变量

  5. 脚本shell每小时递增运行task

    下面 hello 是开始时间, world 是结束时间 #!/bin/bash START=$(date +%s); hello="20160911 00" world=" ...

  6. shell ssh 远程机器 追加文件内容

    在host1上,把下面的两行内容通过ssh追加到host2上的/etc/ca-certificates.conf文件中 I am a student Are you ok ssh host2 &quo ...

  7. luogu P5171 Earthquake

    题目描述 给定 a,b,c ,求满足方程 ax+by⩽c 的非负整数解个数. 输入格式 输入三个整数 a,,b,,c . 输出格式 输出一个整数表示答案. 类欧几里得算法 #include<cs ...

  8. java之面向对象

    类的语法格式 public class Person{ //属性类的成员变量可以先声明,不用初始化,类成员变量具有初始值 String name; int age; //方法 public void ...

  9. ARTS-S cmake,googletest使用

    编译gtest 下载指定tag的源代码 git clone https://github.com/google/googletest.git cd googletest git checkout ta ...

  10. 关于OV7670摄像头的分辨率设置

    关于OV7670摄像头的分辨率设置最近一直在纠结如何把OV7670输出的图片分辨率缩小,以减少数据量来适应数据的传输,在网上看了好多也没有关于寄存器的具体设置,最终又读了几遍数据手册,加上网友们写的帖 ...