0


超硬核,css动画详细讲解

1. CSS 动画的基本概念

CSS 动画主要由两个部分组成:

  • 关键帧(Keyframes):定义动画的状态和变化。
  • 动画属性:控制动画的播放方式和效果。

2. 定义关键帧

使用

  1. @keyframes

规则定义动画的关键帧。关键帧描述了动画在不同时间点的样式。

基本语法:

  1. @keyframes animation-name {
  2. from {
  3. /* 动画开始时的样式 */
  4. }
  5. to {
  6. /* 动画结束时的样式 */
  7. }
  8. }

你也可以使用百分比来定义多个关键帧:

  1. @keyframes animation-name {
  2. 0% {
  3. /* 动画开始时的样式 */
  4. }
  5. 50% {
  6. /* 动画中间的样式 */
  7. }
  8. 100% {
  9. /* 动画结束时的样式 */
  10. }
  11. }

3. 应用动画

要将动画应用到元素上,需要使用以下属性:

  • **animation-name**:指定要使用的动画名称。
  • **animation-duration**:定义动画持续的时间。
  • **animation-timing-function**:定义动画的速度曲线(如线性、缓动等)。
  • **animation-delay**:定义动画开始前的延迟时间。
  • **animation-iteration-count**:定义动画的播放次数(如 infinite 表示无限循环)。
  • **animation-direction**:定义动画的播放方向(如 normalreversealternate)。
  • **animation-fill-mode**:定义动画结束后的状态。

示例:

  1. @keyframes example {
  2. from {
  3. transform: translateX(0);
  4. opacity: 0;
  5. }
  6. to {
  7. transform: translateX(100px);
  8. opacity: 1;
  9. }
  10. }
  11. .box {
  12. width: 100px;
  13. height: 100px;
  14. background-color: #3498db;
  15. animation-name: example; /* 指定动画名称 */
  16. animation-duration: 2s; /* 动画持续时间 */
  17. animation-timing-function: ease; /* 动画速度曲线 */
  18. animation-delay: 0s; /* 动画延迟时间 */
  19. animation-iteration-count: infinite; /* 无限循环 */
  20. animation-direction: alternate; /* 交替播放 */
  21. }

4. 动画属性的详细说明

4.1
  1. animation-name

指定要使用的动画名称。

  1. animation-name: example;
4.2
  1. animation-duration

定义动画的持续时间,可以使用秒(s)或毫秒(ms)。

  1. animation-duration: 2s; /* 2秒 */
4.3
  1. animation-timing-function

定义动画的速度曲线。常用的值包括:

  • linear:匀速。
  • ease:缓动(开始慢,中间快,结束慢)。
  • ease-in:加速(开始慢,结束快)。
  • ease-out:减速(开始快,结束慢)。
  • ease-in-out:先加速后减速。
  1. animation-timing-function: ease-in-out;
4.4
  1. animation-delay

定义动画开始前的延迟时间。

  1. animation-delay: 1s; /* 1秒延迟 */
4.5
  1. animation-iteration-count

定义动画的播放次数,可以是具体的数字或

  1. infinite

  1. animation-iteration-count: 3; /* 播放3次 */
4.6
  1. animation-direction

定义动画的播放方向。

  • normal:正常播放。
  • reverse:反向播放。
  • alternate:交替播放(正向和反向交替)。
  • alternate-reverse:反向交替播放。
  1. animation-direction: alternate;
4.7
  1. animation-fill-mode

定义动画结束后的状态。

  • none:默认值,动画结束后不保持样式。
  • forwards:保持动画结束时的样式。
  • backwards:保持动画开始时的样式。
  • both:同时保持开始和结束时的样式。
  1. animation-fill-mode: forwards;

5. 动画示例

以下是一个简单的 CSS 动画示例,展示一个方块从左到右移动并逐渐变透明。

  1. <!DOCTYPE html>
  2. <html lang="zh">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <title>CSS 动画 示例</title>
  7. <style>
  8. @keyframes move {
  9. from {
  10. transform: translateX(0);
  11. opacity: 1;
  12. }
  13. to {
  14. transform: translateX(300px);
  15. opacity: 0;
  16. }
  17. }
  18. .box {
  19. width: 100px;
  20. height: 100px;
  21. background-color: #3498db;
  22. animation: move 2s ease-in-out infinite; /* 应用动画 */
  23. }
  24. </style>
  25. </head>
  26. <body>
  27. <div class="box"></div>
  28. </body>
  29. </html>

6. 过渡效果

CSS 过渡是另一种创建动画效果的方式,主要用于在属性值变化时实现平滑过渡。与动画不同,过渡通常用于单一属性的变化。

基本语法:

  1. .element {
  2. transition: property duration timing-function delay;
  3. }

示例:

  1. .box {
  2. width: 100px;
  3. height: 100px;
  4. background-color: #3498db;
  5. transition: background-color 0.5s ease; /* 定义过渡效果 */
  6. }
  7. .box:hover {
  8. background-color: #2ecc71; /* 鼠标悬停时改变背景颜色 */
标签: css html 前端

本文转载自: https://blog.csdn.net/xiaowei0016/article/details/140770072
版权归原作者 大手子唐可可 所有, 如有侵权,请联系我们删除。

“超硬核,css动画详细讲解”的评论:

还没有评论