CSS3动画
1. 什么是CSS3中的动画?
动画是使元素从一种样式逐渐变化为另一种样式的效果。
我们可以改变任意多的样式任意多的次数。
可以通过百分比来规定变化发生的时间,或用关键词 "from" 和 "to",等同于 0% 和 100%。
0% 是动画的开始,100% 是动画的完成。
为了得到最佳的浏览器支持,您应该始终定义 0% 和 100% 选择器。
2. CSS3动画规则keyframes
-
from、to (相当于从某个样式过渡到另一个样式,过程相当于0%到100%)
@keyframes myfirst { from {background: red;} to {background: yellow;} }
-
百分比
@keyframes myfirst { 0% {background: red; left: 0px; top: 0px;} 25% {background: yellow; left: 200px; top: 0px;} 50% {background: blue; left: 200px; top: 200px;} 75% {background: green; left: 0px; top: 200px;} 100% {background: red; left: 0px; top: 0px;} }
-
当我们通过 @keyframes 创建动画时,需要把它捆绑到某个选择器,否则不会产生动画效果。
-
通过规定至少以下两项 CSS3 动画属性,即可将动画绑定到选择器:
指定动画的名称
指定动画的时长
-
3. CSS3动画属性
-
3.1 animation
- 描述: 所有动画的简写属性,除了 animation-play-state 属性。
-
3.2 animation-name
- 描述: 规定 @keyframes 动画的名称。
-
animation-duration
- 描述: 规定动画完成一个周期所花费的秒或毫秒。默认是 0。
-
animation-timing-function
* 描述: 规定动画的速度曲线。默认是 "ease"。
* 预定义值:linear: 动画从头到尾的速度是相同的。
ease 默认: 动画以低速开始,然后加快,在结束前变慢。
ease-in: 动画以低速开始。
ease-out: 动画以低速结束。
ease-in-out 动画以低速开始和结束。
cubic-bezier(n,n,n,n) 在 cubic-bezier 函数中自己的值。可能的值是从 0 到 1 的数值。
-
animation-delay
- 描述: 规定动画何时开始。默认是 0。
-
animation-iteration-count
描述: 规定动画被播放的次数。默认是 1。
-
预定义值:
n : 定义动画播放次数的数值。
infinite : 规定动画应该无限次播放。
-
animation-direction
描述:规定动画是否在下一周期逆向地播放。默认是 "normal"。
-
预定义值
normal 默认值。动画应该正常播放。
alternate 动画应该轮流反向播放。
-
animation-play-state
描述:规定动画是否正在运行或暂停。默认是 "running"。
-
预定义值
paused 规定动画已暂停。
running 规定动画正在播放。
-
animation-fill-mode
描述:规定对象动画时间之外的状态。
-
预定义值
none 不改变默认行为。
forwards 当动画完成后,保持最后一个属性值(在最后一个关键帧中定义)。
backwards 在 animation-delay 所指定的一段时间内,在动画显示之前,应用开始属性值(在第一个关键帧中定义)。
both 向前和向后填充模式都被应用。