CSS3(4)---动画(animation)
CSS3(4)---动画(animation)
之前有写过过渡:CSS3(2)--- 过渡(transition)
个人理解两者不同点在于
过渡  只能指定属性的 开始值 与 结束值,然后在这两个属性值之间进行平滑过渡来实现动画效果,因此只能实现简单的动画效果。
动画  除了定义 开始值 和 结束值,在这之间还可以定义多个关键帧以及定义每个关键帧中元素的属性值来实现复杂的动画效果。
一、动画语法
1、属性语法
语法格式
animation:动画名称 动画时间 运动曲线  何时开始  播放次数  是否反方向;
animation 属性是一个简写属性,用于设置六个动画属性

注意: 对于一个动画而言有两个属性是必须的: 动画名称 和 规定完成动画所花费的时间
2、速度曲线属性
语法
animation-timing-function: linear;  /* 动画从头到尾的速度是相同的 */
对于动画的速度曲线属性,有以下属性值:

3、播放次数属性
语法
animation-iteration-count: n|infinite;   /* 播放n次 或者无限循环 */
对于播放次数属性,有以下属性值

4、轮流反向播放动画属性
语法
animation-direction: normal|alternate;  /* 正常播放 或者 轮流反向播放 */
对于轮流反向播放动画属性,有以下属性值

二、如何使用动画
CSS3使用动画只需要2步:1、定义动画;2、调用动画;
1、定义动画
在CSS中,在使用动画之前,我们必须使用@keyframes规则定义动画。
语法
<style type="text/css">
@keyframes 动画名 {
    0% {
        ……
    }
    100% {
        ……
    }
}
</style>
说明 0% 表示动画的开始,100% 表示动画的结束。0%和100% 是必须的,不过在一个@keyframes规则中可以由多个百分比构成,每一个百分比都可以定义
自身的CSS样式,从而形成一系列的动画效果。如果一个动画仅仅只有0%和100%这两个百分比的话,这时0%和100%还可以使用关键词 from和to 来代表,其中0%对应的是
from,100%对应的是to。
2、调用动画
调用动画的语法上面已经写过
animation:动画名称 动画时间 运动曲线  何时开始  播放次数  是否反方向;
这里关键的点在于: 定义动画的名称 和调用动画的名称 一定要一致。
三、示例
1、示例
效果

这里设置了 无限播放次数 并且 轮流反向播放。
代码
<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>动画</title>
	<style>
	div {
		width: 100px;
		height: 100px;
		background-color: pink;
		position: absolute;
		left: 0;
		/*调用动画*/
		/*animation:动画名称 花费时间 运动曲线  何时开始  播放次数  是否反方向;*/
		animation: move 1s ease 0s infinite alternate;
	}
	/*声明动画  关键帧  @keyframes 动画名称 {  }  */
	@keyframes move  {
      	from {
			left: 0;
			background-color: red;
      	}
      	to {
			left: 200px;
			background-color: yellow;     /* Safari 和 Chrome */
      	}
	}
	</style>
</head>
<body>
	<div></div>
</body>
</html>
2、加载动画
效果

代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>动画截图</title>
    <style type="text/css">
       .bian{
           width: 302px;
           height: 129px;
           margin: 100px auto;
           border: 1px solid black;
       }
        .zi{
            width: 69px;
            height: 17px;
            display: block;
            margin: 0 auto;
            margin-top: 104px;
        }
       .b1,.b2,.b3,.b4,.b5{
            float: left;
            width: 30px;
            height: 36px;
            margin-top: 32px;
            margin-left:29px;
            border-radius: 10px;
       }
        .b1{
            background-color: red;
            animation: dong 1s ease 1ms infinite;
        }
        .b2{
            background-color: green;
            animation: dong 1s ease 200ms infinite;
        }
        .b3{
            background-color: #ffc1cd;
            animation: dong 1s ease 400ms infinite;
        }
        .b4{
            background-color: greenyellow;
            animation: dong 1s ease 600ms infinite;
        }
        .b5{
            background-color: cyan;
            animation: dong 1s ease 800ms infinite;
        }
        @keyframes dong {
            from{
                height: 30px;/*原本 后来 进度 刚开始的什么样*/
            }
            to{
                transform: scale(1,2);/*缩放 前边原本宽的倍数 后边原本高的倍数 */
            }
        }
    </style>
</head>
<body>
    <div class="bian">
        <div class="b1"></div>
        <div class="b2"></div>
        <div class="b3"></div>
        <div class="b4"></div>
        <div class="b5"></div>
        <span class="zi">loading...</span>
    </div>
</body>
</html>
3、动画 + 2D变形示例
效果

代码
<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
	<style>
	* {
		margin: 0;
		padding: 0;
	}
	div {
		width: 214px;
		height: 214px;
		margin: 100px auto;
		position: relative;
	}
	div img {
        /*永远循环的匀速转动  */
		animation: rotate  linear  2s infinite;
	}
	@keyframes rotate {
		from {
			transform: rotate(0deg);
		}
		to {
			transform: rotate(360deg); /*旋转360度*/
		}
	}
	div p {
		position: absolute;
		top: 0;
		left: 0;
		text-align: center;
		line-height: 214px;
		width: 100%;
		height: 100%;
	}
	</style>
</head>
<body>
	<div>
		<img src="images/web.png" alt="">
		<p> 转转</p>
	</div>
</body>
</html>
### 参考
2、CSS3动画
```
你如果愿意有所作为,就必须有始有终。(18)
```
CSS3(4)---动画(animation)的更多相关文章
- CSS3之动画Animation特效
		CSS3的出现 让我们通过css样式也能写出炫酷的特效 通过 Animation 这个属性 无需插件和jquery也可以轻松的完成简单的动画效果 DEMO: <!DOCTYPE html> ... 
- css3中动画animation的应用
		<!DOCTYPE html> <html> <head> <style> /* @-webkit-keyframes anim1 { // 规定动画. ... 
- css3 动画(animation)-简单入门
		css3之动画(animation) css3中我们可以使用动画,由于取代以前的gif图片,flash动画,以及部分javascript代码(相信有很多同学都用过jquery中的animate方法来做 ... 
- css3中动画(transition)和过渡(animation)详析
		css3中动画(transition)和过渡(animation)详析 
- CSS3中动画属性transform、transition和animation
		Transform:变形 在网页设计中,CSS被习惯性的理解为擅长表现静态样式,动态的元素必须借助于javascript才可以实现,而CSS3的出现改变了这一思维方式.CSS3除了增加革命性的创新功能 ... 
- CSS3实践之路(六):CSS3的过渡效果(transition)与动画(animation)
		刚开始W3C CSS Workgroup拒绝将CSS3 transition与animation加入官方标准,一些成员认为过渡效果和动画并非样式属性,而且已经可以用脚本实现.所以请大家明白,特别是We ... 
- CSS3的变形transform、过渡transition、动画animation学习
		学习CSS3动画animation得先了解一些关于变形transform.过渡transition的知识 这些新属性大多在新版浏览器得到了支持,有些需要添加浏览器前缀(-webkit-.-moz-.- ... 
- CSS3中动画属性transform、transition 和 animation
		CSS3中和动画有关的属性有三个 transform.transition 和 animation.下面来一一说明: transform 从字面来看transform的释义为改变,使 ... 
- css3基础教程十六变形与动画animation
		前面我们讲过的变形与动画一般都是通过鼠标的单击.获得焦点,被点击或对元素进行一定改变后以后触发效果的,那么有没有像Flash一样自动播放的动画效果呢?答案当然是肯定的,这就是我们今天要讲到的anima ... 
随机推荐
- oracle 通过内部函数提高SQL效率.
			SELECT H.EMPNO,E.ENAME,H.HIST_TYPE,T.TYPE_DESC,COUNT(*) FROM HISTORY_TYPE T,EMP E,EMP_HISTORY H WHER ... 
- oracle WHERE子句中的连接顺序
			ORACLE采用自下而上的顺序解析WHERE子句,根据这个原理,表之间的连接必须写在其他WHERE条件之前, 那些可以过滤掉最大数量记录的条件必须写在WHERE子句的末尾. 例如: (低效,执行时间1 ... 
- @COCI 2016/2017 Round 3@ Meksikanac
			目录 @description@ @solution@ @accepted code@ @details@ @description@ 在平面直角坐标系中,给定一个左下角为 (0, 0),右上角为 ( ... 
- canvas简单动画
			实现场景:定义一个1000*800的方框,圆球在其中移动,碰撞到边框弹回的动画.方框背景是半径为10的小圆球组成.鼠标移动到移动圆球时,圆球停止运动. html代码: <div> < ... 
- 9-6 UVa 11400
			参考 http://www.cnblogs.com/Kiraa/p/5510757.html http://www.cnblogs.com/zhaopAC/p/5159950.html 根据题目说明中 ... 
- poj 1279 Art Gallery (Half Plane Intersection)
			1279 -- Art Gallery 还是半平面交的问题,要求求出多边形中可以观察到多边形所有边的位置区域的面积.其实就是把每一条边看作有向直线然后套用半平面交.这题在输入的时候应该用多边形的有向面 ... 
- mysql-python安装
			操作系统:ubuntu16.04-gnome 首先要安装mysql数据 sudo apt install mysql-server 我们使用pip进行安装第三方模块 系统python版本为2.7.12 ... 
- H3C 帧中继子接口
- Vue 路由规则--传参数
			1,query方法去获取参数 <!DOCTYPE html> <html lang="en"> <head> <meta charset= ... 
- P1053 第K小的取法
			题目描述 给定一个含n个数的数组.现在从中取出一些数.并把这些数相加得出一个和,如果有多种取法的和相同,则视为多种取法.求所有取法对应的和中第K小的和. 输入格式 第一行包括两个正整数n(n<= ... 
