上一篇文章讲解了css3动画中的一个即transitions,那么今天来说说另外一个animations。和transitions不同的是animations可以定义多个关键帧以及每个关键帧中元素的属性值来实现更为复杂的动画效果。
首先来看一个示例:

<!DOCTYPE html>
<head>
<meta charset='utf-8'>
<title>HTML5</title>
</head>
<body>
<style>
#animations{
background-color: red;
width:100px;
}
@-webkit-keyframes mycolor{
0%{
background-color: red;
-webkit-transform:rotate(0deg);
}
40%{
background-color: blue;
-webkit-transform:rotate(30deg);
}
70%{
background-color: yellow;
-webkit-transform:rotate(-30deg);
}
100%{
background-color: red;
-webkit-transform:rotate(0deg);
}
}
@-moz-keyframes mycolor{
0%{
background-color: red;
-moz-transform:rotate(0deg);
}
40%{
background-color: blue;
-moz-transform:rotate(30deg);
}
70%{
background-color: yellow;
-moz-transform:rotate(-30deg);
}
100%{
background-color: red;
-moz-transform:rotate(0deg);
}
}
#animations:hover{
-webkit-animation-name:mycolor;
-webkit-animation-duration:5s;
-webkit-animation-timing-function:linear;
-webkit-animation-iteration-count:infinite;
-moz-animation-name:mycolor;
-moz-animation-duration:5s;
-moz-animation-timing-function:linear;
-moz-animation-iteration-count:infinite;
}
</style>
<div id="animations">
鼠标放在我身上可以吗
</div>
</body>
</html>

下面解释以上代码:
@-webkit-keyframes 关键帧集合名{
创建关键帧的代码
40%{
本关键帧中的样式代码
}
}
其中的40% 0% 100%等可以自己定义的,表示一个过程的不同阶段,如果你有兴趣可以把每个阶段都写下来的。然后是在某个元素的某种状态下来使用它,比如上面的hover时使用时的格式为:
-webkit-animation-name:mycolor; 表示关键帧集合的名称,记得加上不同的前缀
-webkit-animation-duration:5s; 表示完成这个动作所需要的时间
-webkit-animation-timing-function:linear;表示实现动画的方法
-webkit-animation-iteration-count:infinite;表示动画播放次数
实现动画的方法的参数有:
linear:开始和结束以同样的速度进行改变
ease-in:开始慢,然后速度沿曲线值进行加快
ease-out:开始快,然后速度沿曲线值进行放慢
ease:开始慢,然后速度沿曲线值进行加快,然后再沿曲线值放慢
ease-in-out:动画以低速开始和结束
动画的播放次数参数:
n:具体的值
infinite:一直播放
还有:
-webkit-animation-delay:2s;动画的延迟时间

有了以上基础我们就可以做一个实现网页的淡入效果:

<!DOCTYPE html>
<head>
<meta charset='utf-8'>
<title>HTML5</title>
<style>
@-webkit-keyframes fadein{
0%{
opacity: 0;
background-color: white;
}
100%{
opacity: 1;
background-color: white;
}
}
@-moz-keyframes fadein{
0%{
opacity: 0;
background-color: white;
}
100%{
opacity: 1;
background-color: white;
}
}
body{
-webkit-animation-name:fadein;
-webkit-animation-duration:5s;
-webkit-animation-timing-function:linear;
-webkit-animation-iteration-count:1;
-moz-animation-name:fadein;
-moz-animation-duration:5s;
-moz-animation-timing-function:linear;
-moz-animation-iteration-count:1;
}
</style>
</head>
<body>
示例
</body>
</html>

动画就说这些了,还有一些大家可以参考w3c官方手册。

CSS3中的动画功能(二)的更多相关文章

  1. CSS3中的动画功能(一)

    css3中的动画功能分为transitions功能和animations功能,这两种功能都可以通过改变css属性值来产生动画效果.今天带大家一起来看看css3动画功能中的transitions的用法. ...

  2. css3中的动画功能

    直接用我的一段代码演示下css3中实现动画效果的事例,让一个div自动旋转起来 代码如下: <!doctype html> <html lang="en"> ...

  3. CSS3中的动画

    CSS3中的动画包括两种: Transition(过渡) Animation(动画) 这两种方法都可以让元素动起来,功能类似,但是稍有区别: Transition只定义某一个元素的开始状态和结束状态 ...

  4. CSS3中的动画效果记录

    今天要记录的是CSS3中的三种属性transform.transition以及animation,这三个属性大大提升了css处理动画的能力. 一.Transform 变形 CSS中transform ...

  5. css3中的动画效果

    css3中的animation属性动画效果代码如下: <!DOCTYPE html> <html lang="en"> <head> <m ...

  6. CSS3中的动画效果-------Day72

    还记得么,在前面也曾实现过"仅仅用css让div动起来",还记得当时是怎么实现的么,是的,transition,针对的也比較局限,仅仅有旋转角度啊,长宽啊之类的,所以说,与其说是动 ...

  7. CSS3的transition动画功能

    <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...

  8. 第100天:CSS3中animation动画详解

    CSS3属性中有关于制作动画的三个属性:Transform,Transition,Animation: 一.Animation定义动画 CSS3的Animation是由“keyframes”这个属性来 ...

  9. 学习css3中的动画

    css animations 主要有两块构成,那么是哪两块呢? keyframes : 定义了什么阶段展示什么样的动画 animation 属性 :把动画挂载到一个具体的dom上,并且定义如何动起来: ...

随机推荐

  1. Ubuntu搭建Ruby On Rail环境

    受不了Ruby在Windows上的执行等待,转战至ubuntu linux下使用,为方便不同版本ruby的使用,采用了rvm安装Ruby on rails环境. 安装rvm //获取认证 gpg -- ...

  2. Xamarin Error cannot find ‘aapt.exe’

    Problem:     solution:   A workaround is to copy your files to the old directory. Just copy the aapt ...

  3. POJ1190生日蛋糕[DFS 剪枝]

    生日蛋糕 Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 18236   Accepted: 6497 Description ...

  4. nodejs中使用RabbitMq消息中心系统的方式

    方式一:通过npm安装amqp库 方式二:通过rabbit.js库http://www.squaremobius.net/rabbit.js/ AMQP:高级消息队列协议,是应用层协议的一个开放标准, ...

  5. Python-02-基础

    一.数字 int(有符号整型) Python3可以处理任意大小的整数,当然包括负整数. int = 20 print int long(长整型) Python3中不再区分整型和长整型. float(浮 ...

  6. maven中央仓库访问速度太慢的解决办法

    方法一:修改settings.xml eclipse中集成的maven的settings.xml文件,找了半年也没找到,我们放弃eclipse中的maven,下一个最新的maven,并在eclipse ...

  7. java构造方法的作用以及简单java类

    public class TestDemo{ public static void main(String args[]){ Emp emp1 =new Emp(001,"tom" ...

  8. docker-compose启动的tomcat无法远程连接jmx

    最近想学习下java GC优化,就用了一下VisualVM,在远程服务器启动了一个非docker的tomcat,很顺利的就连接了,但是用docker-compose启动的服务却 怎么也连不上,一定是d ...

  9. FineUI(专业版)新增 5 款 Metro 皮肤,邀您共赏!

    http://fineui.com/demo_pro/ 顺应当前流行趋势,五款Metro皮肤闪亮登场,她们分别是: Metro Blue Metro Dark Blue Metro Gray Metr ...

  10. 序列化效率比拼——谁是最后的赢家Newtonsoft.Json

    前言:作为开发人员,对象的序列化恐怕难以避免.楼主也是很早以前就接触过序列化,可是理解都不太深刻,对于用哪种方式去做序列化更是随波逐流——项目中原来用的什么方式照着用就好了.可是这么多年自己对于这东西 ...