上一篇文章讲解了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. NGUI 指定视口大小

    由于只是给Uinty开发插件,对Unity没有系统的学习,对Unity的很多功能都不是非常了解,幸得其他Unity同事的耐心教导,才不至于想崩头.记录一下,避免重复犯错. NGUI可以建立指定视口大小 ...

  2. Vim插件管理

    一.简介 二.管理器 1)Vundle https://github.com/gmarik/vundle.git 2)vim-plug https://github.com/junegunn/vim- ...

  3. Xamarin.Android VSTS 持续集成

    这些天做了一个基于 VSTS 的 Xamarin.Android的持续集成,这里分享下 Build Agent 环境需求 DotNetFramework msbuild visualstudio An ...

  4. WPF Prism

    简介   图解   参考 Using the Model-View-ViewModel Pattern

  5. 移动端开发之APP消息推送

    有这样一种场景,当你在手机APP上输入你的信息,会自动跳出一个弹窗,表示某任务已执行.最简单的一个例子就是当你输入手机号,点击获取验证码的时候,就会跳出一个对话框,说“验证码已发送到手机,请注意查收” ...

  6. CANopen学习——OSI模型复习

    CanOpen协议实现了物理层和数据链路层,OSI模型是完整的7层. OSI模型网络七层包括物理层.数据链路层.网络层.传输层.会话层.表示层和应用层. 物理层:提供信息传输的物理连接通道,包括使用的 ...

  7. 最小生成树 kruskal算法 codevs 1638 修复公路

    1638 修复公路  时间限制: 1 s  空间限制: 256000 KB  题目等级 : 钻石 Diamond 题解       题目描述 Description A地区在地震过后,连接所有村庄的公 ...

  8. Appium学习实践(五)遇到的坑(记录自己工作中遇到的坑以及解决方案,不定时更新)

    1.错误截图,有时候测试用例执行错误的话,相对于复杂的log,一张错误截图也许能更明确哪里出的问题(当然有时,截图+log还是最好了) 坑:本来是想测试用例fail的时候捕获异常来执行截图操作,但是由 ...

  9. sublime 安装笔记

    sublime 安装笔记 下载地址 安装package control 根据版本复制相应的代码到console,运行 按要求重启几次后再按crtl+shift+p打开命令窗口 输入pcip即可开始安装 ...

  10. AC日记——约瑟夫问题 codevs 1282

    1282 约瑟夫问题  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 大师 Master 题解  查看运行结果     题目描述 Description 有编号从1到N的N个小 ...