animation 属性是为元素添加动画序列的,它是一个简写属性,从 animation-mdn 看它有8个子属性,是一个复杂的CSS 属性,但是普通使用的话并不复杂,复杂使用目前没有接触到。
可以使用 animation 属性及其子属性为元素添加动画序列。
animation 属性允许配置动画持续时长、延迟时间以及其他动画细节,但该属性不能配置动画的实际表现,动画的实际表现是由 @keyframes 规则实现。
- animation 简单使用举例:
```css .square { width: 100px; height:100px; border: 1px solid #000; position: relative; }<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>JS Bin</title>
</head>
<body>
<div class="square">
<div class="circle"></div>
</div>
</body>
</html>
.circle { width: 20px; height:20px; background:red; position: absolute; top: 50%; margin-top: -10px; animation: spin 2s 3 1s linear alternate; }
@keyframes spin { 0% { left: 0%; transform: rotate(0deg) } 25% { background: yellow; border-radius: 50%; } 50% { background: green; } 75% { background: yellow; border-radius: 50%; } 100% { left: 100%; transform: rotate(360deg) } }
也可以打开[在线链接](http://js.jirengu.com/hoyaxezucu/3/edit)查看。
上面提到 animation 有8个子属性,而上面代码中我们只设置了6个值,可见并不是每一个子属性值都需要设置,下面让我们看看**子属性可以设置的属性值和默认属性值**。
<a name="r1RSJ"></a>
### animation-duration
该属性指定一个动画周期的时长。也就是0%变化到100%的时间。<br />默认值为0s,表示无动画。<br />属性值为:0/正数 + s/ms,没有单位无效。<br />开发时通常使用简写属性配置。
<a name="wySYc"></a>
#### 语法
> animation-duration:[<time>](https://developer.mozilla.org/zh-CN/docs/Web/CSS/time)
<time> 是CSS的基本数据类型,意为这个属性值得设置为时间,可以直接点击查看。先点击查看 mdn 的[CSS 属性值定义语法](https://developer.mozilla.org/zh-CN/docs/Web/CSS/Value_definition_syntax#hash_mark_())说明,以后就能get MDN文档的语法说明了(仿佛发现了新大陆,以前我也是看不懂的,总觉得说得不是人话)。
<a name="kWPwo"></a>
#### 举例
```css
animation-duration: 6s
animation-duration: 120ms
animation-duration: 1s, 15s
animation-duration: 10s, 30s, 230ms
animation-timing-function
animation-delay
animation-iteration-count
animation-direction
animation-fill-mode
确定动画在执行之前和之后这两个阶段应用的样式 。(这里不是很理解呢)