前端知识速记--css篇:CSS3中的常见动画及实现方式

前端知识速记--css篇:CSS3中的常见动画及实现方式

常见的CSS3动画

1. 过渡 (Transitions)

过渡是一种非常简单的动画效果,允许你在元素的状态变更时平滑过渡到新状态。

语法格式

css 复制代码
transition: property duration timing-function delay;
  • property:指定要过渡的CSS属性,例如 background-color
  • duration:过渡的持续时间,例如 0.5s
  • timing-function:过渡的速度曲线,例如 ease
  • delay(可选):延迟时间,例如 0.2s

实现示例

css 复制代码
.box {
  width: 100px;
  height: 100px;
  background-color: blue;
  transition: background-color 0.5s ease;
}

.box:hover {
  background-color: red;
}

分析 :当用户将鼠标悬停在 .box 元素上时,背景颜色会在0.5秒内从蓝色平滑过渡到红色。

2. 关键帧动画 (Keyframe Animations)

关键帧动画允许开发者定义动画的多个状态,可以创建复杂的动画效果。

语法格式

css 复制代码
@keyframes animation-name {
  from { /* 关键帧样式 */ }
  to { /* 关键帧样式 */ }
  
  /* 或者使用百分比 */
  0% { /* 关键帧样式 */ }
  50% { /* 关键帧样式 */ }
  100% { /* 关键帧样式 */ }
}

.animation-class {
  animation: animation-name duration timing-function iteration-count direction;
}
  • animation-name:动画名称。
  • duration:动画的持续时间,例如 1s
  • timing-function:动画的速度曲线,例如 infinite(无限循环)。
  • iteration-count:迭代次数,例如 infinite
  • direction:动画方向,例如 alternate

实现示例

css 复制代码
@keyframes example {
  0% {transform: translateY(0);}
  50% {transform: translateY(-20px);}
  100% {transform: translateY(0);}
}

.box {
  animation: example 1s infinite;
}

分析 :这个示例中,.box 元素向上移动20像素后再回到原位,整个动画持续1秒,并且会无限循环。

3. 动画延迟和方向

CSS3动画支持延迟和方向控制,可以为动画提供更多个性化效果。

语法格式

css 复制代码
.animation-class {
  animation-delay: time;
  animation-direction: direction;
}
  • time:延迟时间,例如 0.5s
  • direction:动画方向,例如 normal(正常)、reverse(反向)、alternate(交替)。

实现示例

css 复制代码
.box {
  animation: example 1s infinite alternate;
  animation-delay: 0.5s;
}

分析 :此示例使用 alternate,使得动画在完成一个周期后反向执行,并且使用 animation-delay 延迟0.5秒开始。

4. 缩放和旋转

通过 CSS3 的 transform 属性,可以对元素进行缩放和旋转。

语法格式

css 复制代码
transform: scale(sx, sy);
transform: rotate(deg);
  • sxsy:分别表示在 X 轴和 Y 轴上的缩放倍数。
  • deg:旋转角度。

实现示例

css 复制代码
.box {
  transform: scale(1);
  transition: transform 0.3s ease;
}

.box:hover {
  transform: scale(1.2);
}

分析:当元素被悬停时,它会在0.3秒内逐渐放大至1.2倍。

动画总结表

动画类型 特性 语法格式 示例代码
过渡 (Transitions) 简单状态变更,平滑过渡 transition: property duration timing-function delay; .box:hover { background-color: red; }
关键帧动画 (Keyframes) 定义多个动画状态,复杂效果 @keyframes name { ... } animation: name duration; @keyframes example { ... } .box { animation: example 1s infinite; }
动画延迟与方向 支持延迟和反向执行 animation-delay: time; animation-direction: direction; .box { animation: example 1s infinite alternate; }
缩放和旋转 对元素进行缩放和旋转 transform: scale(sx, sy); transform: rotate(deg); .box:hover { transform: scale(1.2); }
相关推荐
We་ct21 小时前
LeetCode 105. 从前序与中序遍历序列构造二叉树:题解与思路解析
前端·算法·leetcode·链表·typescript
前端 贾公子1 天前
深入理解 Vue3 的 v-model 及自定义指令的实现原理(下)
前端·html
Roc.Chang1 天前
Vite 启动报错:listen EACCES: permission denied 0.0.0.0:80 解决方案
linux·前端·vue·vite
Desirediscipline1 天前
cerr << 是C++中用于输出错误信息的标准用法
java·前端·c++·算法
sunny_1 天前
前端构建产物里的 __esModule 是什么?一次讲清楚它的原理和作用
前端·架构·前端工程化
Soulkey1 天前
复刻小红书Web端打开详情过渡动画
前端
yuki_uix1 天前
你点了「保存」之后,数据都经历了什么?
前端
猪头男1 天前
【从零开始学习Vue|第六篇】生命周期
前端
zheshiyangyang1 天前
前端面试基础知识整理【Day-7】
前端·面试·职场和发展
猫头虎1 天前
web开发常见问题解决方案大全:502/503 Bad Gateway/Connection reset/504 timed out/400 Bad Request/401 Unauthorized
运维·前端·nginx·http·https·gateway·openresty