我的日常开发记录日志
首页
  • Laravel
  • Thinkphp
  • Swoole
  • Workman
  • php
  • HTML
  • CSS
  • JavaScript
  • Vue
  • ES6
  • 小程序
  • Mysql
  • Redis
  • Es
  • MongoDb
  • Git
  • Composer
  • Linux
  • Nginx
  • Docker
  • Vpn
  • 开发实战
  • 开发工具类
  • 友情链接
💖关于
💻收藏
  • 分类
  • 标签
  • 归档数据
GitHub (opens new window)

我的日常开发记录日志

never give up
首页
  • Laravel
  • Thinkphp
  • Swoole
  • Workman
  • php
  • HTML
  • CSS
  • JavaScript
  • Vue
  • ES6
  • 小程序
  • Mysql
  • Redis
  • Es
  • MongoDb
  • Git
  • Composer
  • Linux
  • Nginx
  • Docker
  • Vpn
  • 开发实战
  • 开发工具类
  • 友情链接
💖关于
💻收藏
  • 分类
  • 标签
  • 归档数据
GitHub (opens new window)
  • html

  • css

    • Html
    • css中calc的用法
    • 媒体查询
    • 没有设置宽度的元素
    • 常用到尺寸单位
    • background背景色使用
    • css过渡
    • 正则复杂选择器
    • css变形
    • css动画
      • CSS 动画是一种允许我们添加运动效果的技术,能够为网页元素提供视觉表现,增强用户体验。CSS 动画可以通过 @keyframes 规则来定义动画的关键帧,并使用 animation 属性来应用它们。
        • 1. 动画的基本概念
        • 2. 动画场景示例
        • 3. 示例代码
        • 4. 代码解析
        • 5. 动画参数配置
        • 6. 动画应用场景
        • 总结
    • 伪类选择器
    • 优化input显示
  • javascript

  • vue

  • 小程序

  • Es6

  • 前端
  • css
窝窝侠
2024-11-01

css动画

# CSS 动画是一种允许我们添加运动效果的技术,能够为网页元素提供视觉表现,增强用户体验。CSS 动画可以通过 @keyframes 规则来定义动画的关键帧,并使用 animation 属性来应用它们。

# 1. 动画的基本概念

关键帧(Keyframes): 用于定义动画的状态。通过 @keyframes 规则创建,每个关键帧表示动画在特定时间点的样式。

动画属性: 使用 animation 属性在 CSS 中应用动画。包括以下主要参数:

  • animation-name: 指定要使用的关键帧动画名称。
  • animation-duration: 动画持续时间。例如:2s 表示 2 秒。
  • animation-timing-function: 动画的速度曲线,例如:ease, linear, ease-in, ease-out, ease-in-out。
  • animation-delay: 动画开始前的延迟时间。
  • animation-iteration-count: 动画的循环次数,例如:infinite 表示无限循环。
  • animation-direction: 动画的播放方向,例如:normal, reverse, alternate, alternate-reverse。
  • animation-fill-mode: 动画结束后如何处理元素的样式。

# 2. 动画场景示例

下面是一个简单的示例,展示一个按钮在鼠标悬停时改变颜色和大小的动画效果。

# 3. 示例代码

以下是完整的 HTML 和 CSS 代码示例:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>CSS Animation Example</title>
    <style>
        body {
            display: flex;
            justify-content: center;
            align-items: center;
            height: 100vh;
            background-color: #f0f0f0;
        }

        .button {
            padding: 15px 30px;
            font-size: 16px;
            color: white;
            background-color: #007BFF;
            border: none;
            border-radius: 5px;
            cursor: pointer;
            transition: transform 0.2s ease;
        }

        .button:hover {
            animation: grow 0.5s forwards; /* 应用动画 */
        }

        /* 定义关键帧动画 */
        @keyframes grow {
            0% {
                transform: scale(1); /* 初始状态 */
                background-color: #007BFF; /* 初始颜色 */
            }
            50% {
                transform: scale(1.1); /* 中间状态 */
                background-color: #0056b3; /* 变色 */
            }
            100% {
                transform: scale(1); /* 结束状态 */
                background-color: #007BFF; /* 恢复颜色 */
            }
        }
    </style>
</head>
<body>
    <button class="button">Hover Me!</button>
</body>
</html>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51

# 4. 代码解析

  • HTML 部分: 一个简单的按钮元素,用于触发动画。
  • CSS 部分:
    • body 样式使用 flex 布局以居中按钮。
    • .button 样式设置了按钮的外观,包括内边距、字体、背景颜色和边框圆角。
    • 在 .button:hover 中,使用 animation 属性应用名为 grow 的动画,持续时间为 0.5s。

# 关键帧动画 @keyframes grow:

  • 0%: 动画的起始状态,按钮保持原始大小和颜色。
  • 50%: 动画的中间状态,按钮增大 10%(scale(1.1))并改变背景颜色。
  • 100%: 动画的结束状态,按钮恢复到原始大小和颜色。

# 5. 动画参数配置

# 1. 动画持续时间

在 .button:hover 中指定的 0.5s 是动画的持续时间。可以根据需要调整为 1s, 2s 等。

# 2. 动画速度曲线

可以通过 animation-timing-function 调整动画的速度曲线,如下所示:

.button:hover {
    animation: grow 0.5s ease-in-out forwards; /* ease-in-out 速度曲线 */
}
1
2
3

# 3. 动画循环次数

如果希望动画重复,可以设置 animation-iteration-count,如:

.button:hover {
    animation: grow 0.5s forwards infinite; /* 无限循环 */
}
1
2
3

# 6. 动画应用场景

  • 按钮反馈: 在用户悬停或点击按钮时提供视觉反馈。
  • 加载指示器: 通过动画效果引导用户注意加载状态。
  • 内容切换: 在切换内容时添加动画过渡效果,提升用户体验。
  • 页面元素展示: 在页面加载时,逐个显示元素,增加动态效果。

# 总结

CSS 动画为网页元素提供了丰富的交互效果。通过调整关键帧、持续时间、速度曲线等参数,可以创建出多种不同的动画效果,提升用户体验和视觉吸引力。如果

在线编辑 (opens new window)
上次更新: 2025/02/25, 18:30:54
css变形
伪类选择器

← css变形 伪类选择器→

最近更新
01
showprocess用法
04-29
02
vue3中尖括号和冒号的使用细则
04-29
03
sd使用
02-22
更多文章>
🖥️

© 2025窝窝侠 💌 豫ICP备20005263号-2 🛀 Theme by 💝 Vdoing && 小胖墩er

  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式
×