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 | 暂停 |


相关推荐
ℋᙚᵐⁱᒻᵉ鲸落3 小时前
移动端滑动手势冲突:overflow: auto导致外层横向滑动失效
前端·javascript·css·vue.js·html
默_笙4 小时前
🎃 前端学了 Next.js,后端该学啥?NestJS 就是 Node 版的蜜雪冰城
前端·javascript
前端snow5 小时前
ai agent --- 实现 openclaw 定时间效果
前端
码云之上5 小时前
换模型之后,Chatbot 为什么要自己做 compact?
前端·agent·前端工程化
星栈5 小时前
自定义 UI-UX-Pro-Max 的 CSV 知识库,把 AI 生成的后台拉回行业该有的样子
前端·agent·weui
研☆香6 小时前
简单的图片上传 删除 预览
前端
ITresearchGuest6 小时前
我用 AI 一小时写了一个世界杯数据可视化平台|前端 VibeCoding 初体验
前端·人工智能·信息可视化
慧一居士7 小时前
Vite项目中使用Less步骤,详细使用示例
前端·css
花间相见7 小时前
【LangChain组件03】—— LangChain Agents 执行与状态:工作流程与状态管理实战
java·前端·langchain
kyriewen8 小时前
面试官让我用 AI 重构一个 8 年陈的 React 组件——他说他不看代码,只看我会不会拆
前端·javascript·面试