CSS3中的animation属性

animation

animation比较类似于 flash 中的逐帧动画,逐帧动画就像电影的播放一样,表现非常细腻并且有非常大的灵活性。然而transition只是指定了开始和结束态,整个动画的过程也是由特定的函数控制。学习过 flash 的同学知道,这种逐帧动画是由关键帧组成,很多个关键帧连续的播放就组成了动画,在 CSS3 中是由属性keyframes来完成逐帧动画的

animation

它是animation-nameanimation-durationanimation-timing-functionanimation-delayanimation-iteration-countanimation-direction的简写:

.animation {
    animation:[<animation-name> || <animation-duration> || <animation-timing-function> || <animation-delay> || <animation-iteration-count> || <animation-direction>] [, [<animation-name> || <animation-duration> || <animation-timing-function> || <animation-delay> || <animation-iteration-count> || <animation-direction>] ]*;
}

@keyframes

@keyframes animationName {
    from {
        properties: value;
    }
    percentage {
        properties: value;
    }
    to {
        properties: value;
    }}//or
@keyframes animationName {
    0% {
        properties: value;
    }
    percentage {
        properties: value;
    }
    100% {
        properties: value;
    }}
  • animationName:动画名称,开发人员自己命名;
  • percentage:为百分比值,可以添加多个百分比值;
  • properties:样式属性名称,例如:color、left、width等等。

animation-name

它是用来设置动画的名称,可以同时赋值多个动画名称,用 , 隔开:

.animation {
    animation-name: none | IDENT[,none | IDENT]*;
    }

animation-duration

它是用来设置动画的持续时间,单位为s,默认值为0:

.animation {
    animation-duration: <time>[,<time>]*;}

animation-timing-function

和transition-timing-function类似:

.animation {
    animation-timing-function:ease | linear | ease-in | ease-out | ease-in-out | cubic-bezier(<number>, <number>, <number>, <number>) [, ease | linear | ease-in | ease-out | ease-in-out | cubic-bezier(<number>, <number>, <number>, <number>)]*;
    }

animation-delay

它是来设置动画的开始时间,单位是s或者ms,默认值为0:

.animation {
    animation-delay: <time>[,<time>]*;
    }

animation-iteration-count

它是来设置动画循环的次数,默认为1,infinite为无限次数的循环:

.animation {
    animation-iteration-count:infinite | <number> [, infinite | <number>]*;
    }

animation-direction

它是来设置动画播放的方向,默认值为normal表示向前播放,alternate代表动画播放在第偶数次向前播放,第奇数次向反方向播放:

.animation {
    animation-direction: normal | alternate [, normal | alternate]*;
    }

animation-play-state

它主要是来控制动画的播放状态:running代表播放,而paused代表停止播放,running为默认值:

.animation {
    animation-play-state:running | paused [, running | paused]*;
    }

总结

关于 CSS3 的动画的三个属性transformtransitionanimation我们都介绍完了,让我们回顾一下。transform我们可以理解为元素的几何变形,它是有规律可寻的,这种变形并不会产生动画效果仅仅是原有形状的改变;transitionanimation它们很像 flash 中的补间动画和逐帧动画;transition是从一个状态变化到另外一种状态,当变化有了平滑的效果后就产生了动画,它是一个公式化的变化,在比较规则的动画效果中我们可以使用,例如:旋转的风车、行驶的汽车、颜色的渐变等等;animation的动画效果更加灵活,可以实现像影片一样的复杂无规则的动画。

### CSS3 `animation` 属性使用教程 #### 一、常见动画属性简介 CSS3 提供了一系列用于创建复杂动画效果的属性。其中最核心的是 `animation` 组合属性,它能够一次性设定多个子属性来控制动画的行为[^2]。 - **`animation-name`**: 定义应用到目标元素上的关键帧名称。 - **`animation-duration`**: 设置完成整个动画循环所需的时间长度,默认单位为秒(s),也可以使用毫秒(ms)[^4]。 - **`animation-timing-function`**: 描述动画的速度曲线,常见的有线性(`linear`)、缓入/缓出(`ease-in`, `ease-out`, `ease-in-out`)等选项[^1]。 - **`animation-delay`**: 指定动画开始前等待的时间间隔。 - **`animation-iteration-count`**: 控制动画重复播放次数;可设为无限次(`infinite`)。 - **`animation-direction`**: 决定了每次迭代的方向变化模式,比如正向运行还是交替反向执行。 - **`animation-fill-mode`**: 影响动画之外的状态,在未启动或结束后如何影响被选中的元素样式[^3]。 #### 二、代码示例 - 创建简单的淡入淡出效果 下面是一个利用上述提到的各种参数组合而成的例子: ```css /* 定义名为 &#39;fade&#39; 的 @keyframes */ @keyframes fade { from { opacity:0; } to { opacity:1; } } /* 应用该动画至特定类名 .example 上 */ .example { /* 单独指定各子属性 */ animation-name: fade; animation-duration: 2s; animation-timing-function: ease-in; animation-delay: 1s; animation-iteration-count: infinite; animation-direction: alternate; animation-fill-mode: both; /* 或者采用简写的复合形式 */ /* animation: fade 2s ease-in 1s infinite alternate both; */ } ``` 此段代码实现了当页面加载完成后的一秒钟延迟后,`.example` 类下的HTML元素将以两秒内逐渐变得完全可见的方式断切换透明度状态,并且在动画前后保持最终的效果显示。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值