CSS新手入门笔记整理:动画

在CSS3中,我们可以使用animation属性来实现元素的动画效果。animation属性和transition属性的区别。

  • transition属性只能将元素的某一个属性从一个属性值过渡到另一个属性值。只能实现一次性的动画效果。
  • animation属性来可以将元素的某一个属性从第1个属性值过渡到第2个属性值,然后还可以继续过渡到第3个属性值,以此类推。可以实现连续性的动画效果。

语法

复制代码
元素{原始属性}

/*定义动画*/
@keyframes 动画名称     
	{
	0%{属性:属性值;}
	···
	100%{属性:属性值;}
	}

/*调用动画*/
元素:hover{animation:动画名称 持续时间 动画方式 延迟时间 动画次数 动画方向;}   

animation是一个复合属性,主要包括6个子属性。

|---------------------------|----------------|
| 属性 | 说明 |
| animation-name | 对哪一个CSS属性进行操作 |
| animation-duration | 动画的持续时间 |
| animation-timing-function | 动画的速率变化方式 |
| animation-delay | 动画的延迟时间 |
| animation-iteration-count | 动画的播放次数 |
| animation-direction | 动画的播放方向,正向还是反向 |


定义动画:@keyframes

在调用动画之前,我们必须先使用@keyframes规则来定义动画。

语法

复制代码
@keyframes 动画名称
{
  0%{}
  ......
  100%{}
}

@keyframes mycolor
{
  from{color:red;}
  to{color:green;}
}
  • 0%表示动画的开始,100%表示动画的结束,0%和100%是必须的。一个@keyframes规则可以由多个百分比组成,每一个百分比都可以定义自身的CSS样式,从而形成一系列的动画效果。
  • 在使用@keyframes规则时,如果仅仅只有0%和100%这两个百分比,此时0%和100%可以使用关键字from和to来代替,其中0%对应from,100%对应to。

动画名称:animation-name

使用animation-name属性来定义动画调用的是哪一个动画名称,即@keyframes定义的哪一个规则。

语法

复制代码
animation-name: 动画名;

animation-name调用的动画名需要和@keyframes规则定义的动画名完全一致(区分大小写),如果不一致将不会产生任何动画效果。


持续时间:animation-duration

语法

复制代码
animation-duration: 时间;

animation-duration属性取值是一个时间,单位为秒(s),可以是小数。


动画方式:animation-timing-function

语法

复制代码
animation-timing-function: 取值;

|-------------|-----------------|---------------------------------------------------------------------------------------------------|
| 属性值 | 说明 | 速率 |
| ease | 默认值,由快到慢,逐渐变慢 | |
| linear | 匀速 | |
| ease-in | 速度越来越快(即渐显效果) | |
| ease-out | 速度越来越慢(即渐隐效果) | |
| ease-in-out | 先加速后减速(即渐显渐隐效果) | |


延迟时间:animation-delay

语法

复制代码
animation-delay:时间;

animation-delay属性取值是一个时间,单位为秒(s),可以为小数,其中默认值为0s。


播放次数:animation-iteration-count

语法

复制代码
animation-iteration-count: 取值;

animation-iteration-count属性取值有两种:一种是"正整数",另一种是"infinite"。当取值为n(正整数)时,表示动画播放n次;当取值为infinite时,表示动画播放无数次,也就是循环播放。


播放方向:animation-direction

语法

复制代码
animation-direction: 取值;

|-----------|-----------------------------------|
| 属性值 | 说明 |
| normal | 正方向播放(默认值) |
| reverse | 反方向播放 |
| alternate | 播放次数是奇数时,动画正方向播放;播放次数是偶数时,动画反方向播放 |


播放状态:animation-play-state

语法

复制代码
animation-play-state: 取值;

|---------|---------|
| 属性值 | 说明 |
| running | 播放(默认值) |
| paused | 暂停 |


相关推荐
随风一样自由7 小时前
【前端独角兽】刚进入前端领域的前端开发用jQuery还是Vue3?
前端·javascript·vue3·jquery
IMPYLH8 小时前
HTML 的 <data> 元素
前端·html
YHHLAI8 小时前
[特殊字符] 面试中的 Promise —— 从入门到精通
前端·javascript·面试
kyriewen10 小时前
我扒了 GPT-5.6 的全部编程跑分——有一项 OpenAI 没敢放出来
前端·gpt·ai编程
前端H10 小时前
微前端 v3 架构升级:从加载隔离到状态协同
前端·架构·状态模式
陆枫Larry12 小时前
小程序包体积优化:用 SVG 图片替换 iconfont,并保留 CSS 控色能力
前端
环境栈笔记13 小时前
多账号浏览器选型检查清单:Profile、权限、Session 和任务日志怎么评估
前端·人工智能·后端·自动化
前端炒粉13 小时前
手写promise
java·前端·javascript
LaughingZhu13 小时前
智能体经典范式构建:ReAct、Plan-and-Solve 与 Reflection
前端·react.js·前端框架
jsonbro13 小时前
手把手带你实现发布订阅模式
前端·vue.js·设计模式