📅  最后修改于: 2023-12-03 14:40:22.705000             🧑  作者: Mango
CSS3动画使得动态元素的创建变得更加容易。 它提供了一个简单明了的方式来描述如何为某一个元素在页面上定义动画效果。通过CSS3动画,我们可以让元素在某一个时间段内发生平移、旋转、缩放、渐变等变化效果。同时,它还具有以下特点:
使用 CSS3 动画的最常见方法是定义一个@keyframes块,并将其指定为一个名称,该名称由animation属性使用。@keyframes规则中定义了一个动画序列,指定一个或多个关键帧,每个关键帧在动画序列的某个时间点上定义了一个状态。例如,以下代码表示从左边的起点向右移动一个元素,到右边的终点:
@keyframes move-right {
0% {left: 0px;}
100% {left: 400px;}
}
.box {
position: relative;
width: 100px;
height: 100px;
background: red;
animation: move-right 2s;
}
在上述例子中,@keyframes定义了两个状态0%和100%,代表了开始和结束时元素的样式,对于每个时间间隔CSS3动画引擎会自动计算状态中间的过渡效果,产生一个比较流畅的动画效果。
在 CSS3 动画中,我们可以使用以下属性:
定义一个@keyframes动画名称
animation-name: [none|keyframes-name];
定义动画需要多长时间完成
animation-duration: [time|initial|inherit];
用于定义动画的速度曲线
animation-timing-function: [linear|ease|ease-in|ease-out|ease-in-out|cubic-bezier(n,n,n,n)|initial|inherit];
定义起始时间延迟
animation-delay: [time|initial|inherit];
定义动画执行次数
animation-iteration-count: [number|infinite|initial|inherit];
定义动画的播放方向
animation-direction: [normal|reverse|alternate|alternate-reverse|initial|inherit];
定义动画完成后的状态
animation-fill-mode: [none|forwards|backwards|both|initial|inherit]
定义动画是否正在运行或停止
animation-play-state: [paused|running|initial|inherit];
在下面的示例中,使用动画属性创建了一个旋转的方块:
.box {
position: relative;
width: 100px;
height: 100px;
background: red;
animation: spin 4s linear infinite;
}
@keyframes spin {
from { transform: rotate(0deg); }
to { transform: rotate(360deg); }
}
上述代码中,变量在动画的整个周期内都是线性的。利用多个关键帧的过渡我们可以构建出更加丰富的动态效果。
CSS3动画提供了一种简单的方式来为页面元素定义动态效果,利用它可以为网页增添不少绚丽的视觉效果。希望本文可以为CSS3动画的学习提供一些帮助。