”工欲善其事,必先利其器。“—孔子《论语.录灵公》
首页 > 编程 > 如何用CSS制作动画?

如何用CSS制作动画?

发布于2024-08-02
浏览:872

How to make Animation in Css?

介绍

今天我来告诉大家如何制作动画。我们将在这篇文章中看到所有必要的动画属性。你可以在我的github上获取代码。那么让我们开始吧!

动画片

动画是用于增强网站外观的属性。它给用户带来了很好的干扰,也可以用来向人们展示网站的目标。

基本动画

第一个动画:改变正方形的颜色

Square

这里我做了一个蓝色的正方形,然后给它一些样式。任何颜色都可以!

#square{
    position: relative;
    width: 8rem;
    height: 8rem;
    background-color: rgb(14, 202, 202);
    border-radius: 5px;
    margin: 3rem 0 0 3rem;
    text-align: center;
}

现在我们将制作一个动画。

第1步:制作动画@keyframes

制作动画需要设置@keyframes。它保存您想要在某个时间赋予元素的样式,然后您需要给它一个名称。我的情况是我正在改变方块的颜色。所以,我给它起了一个名字:颜色。现在,您可以用两种类型编写@keyframes,例如

@keyframes color{
    from{
        background-color: rgb(14, 202, 202);
    }
    to{
        background-color: pink;
    }
}

如果你想执行一个有两个步骤的动画,你可以使用 to 和 from。或者您可以使用百分比值来完成,例如

@keyframes color{
    0%{
        background-color: rgb(14, 202, 202);
    }
    100%{
        background-color: pink;
    }
}

当您必须在动画中执行多个任务时使用百分比值,但您可以同时使用两者!我通常对动画使用百分比值

第二步:设置方块的动画属性。

现在,我们将动画属性放在正方形上。为此,您需要了解动画的属性。我会告诉你那些最常用的:

  • animation-name - 用于告诉浏览器您要使用哪个@keyframes。就我而言,我的 @keyframes 名称是 color.

  • animation-duration - 用于告诉动画应该在多长时间内完成。

  • animation-iteration-count - 用于告诉应该执行多少次。

您可以在 w3school 或任何其他网站上了解有关动画的更多信息。现在,我们将使用动画属性,但我们将其写在一行中,如下所示:

    animation: color 4s infinite;

CSS中的动画有7个属性。为了在单行中使用动画属性,我首先编写动画名称(颜色),然后编写动画持续时间(在我的例子中为 4 秒),然后将动画迭代计数设置为无限。如果只想使用一次动画,可以将其设置为 1 。您也可以自行设置动画属性的值。

现在,如果您看到您的方块,它会一次又一次地改变颜色!现在,我们将使其在改变颜色的同时移动。

第二个动画:移动方块并改变颜色!

为此,我将使用同一个方块,并为此制作另一个@keyframes。我们将使用与之前相同的步骤

第1步:制作动画@keyframes

@keyframes move{
    0%{
        left:0px;
        background-color: rgb(14, 202, 202);
    }50%{
        left: 300px;
        background-color: pink;
    }100%{
        left:0px;
        background-color: rgb(14, 202, 202);
    }
}

在这里,我创建了一个名为 move 的 @keyframes,并为此动画使用了三个步骤。首先,我将左侧设置为 0px 和背景颜色。然后在 50% 时,我将 left 设置为 300px 并更改背景颜色,最后,我再次将 left 设置为 0px,这样它将出现在第一个位置。

第二步:设置方块的动画属性

    animation: move 4s infinite;

在这里,我将animation-name设置为move,然后animation-duration设置为4s,animation-iteration-count设置为无限。您可以再次根据您的选择设置动画值。并且不要忘记注释第一个动画属性,否则可能会出错!

结论

由于这篇文章已经太长了,所以我们将在另一篇文章中继续。就目前而言,今天就足够了。我希望你能理解。我尽力讲述关于动画的所有事情。并在评论中告诉我下一篇文章应该写什么主题。感谢您的阅读!

版本声明 本文转载于:https://dev.to/lakshita_kumawat/how-to-make-animation-in-css-1f97?1如有侵犯,请联系[email protected]删除
最新教程 更多>
  • 为什么 MDM 很重要:优势和商业价值
    为什么 MDM 很重要:优势和商业价值
    在当今的数字经济中,数据是每个成功企业的基石。随着组织生成的信息呈指数级增长,主数据的有效管理已成为当务之急。主数据管理 (MDM) 是管理组织关键数据资产(例如客户信息、产品详细信息和财务记录)的战略流程,确保所有部门和系统的准确性、一致性和可访问性。但为什么 MDM 很重要?更重要的是,它能带来...
    编程 发布于2024-11-08
  • 是什么导致 Google Chrome 的 Console.log() 中数组和对象的行为不一致?
    是什么导致 Google Chrome 的 Console.log() 中数组和对象的行为不一致?
    Google Chrome 的 console.log() 表现出数组和对象不一致的行为了解问题在 Google Chrome 中调试代码时,观察到 console.log() 在处理嵌套数组时表现得很奇怪。记录数组时,在记录后修改其内部值会导致记录的输出反映更新后的值而不是记录时的值。 Firef...
    编程 发布于2024-11-08
  • 在 PHP 中按对象字段对对象数组进行排序
    在 PHP 中按对象字段对对象数组进行排序
    在 PHP 中,有多种方法可以按对象字段对对象数组进行排序。以下是一些常见的方法: 将 usort() 函数与自定义比较函数结合使用 实现自定义排序算法 利用 array_multisort() 函数 将 usort() 函数与自定义比较函数结合使用 以下是在 PHP 中使用 us...
    编程 发布于2024-11-08
  • 注意 Java 中的类型转换
    注意 Java 中的类型转换
    Java是强类型语言,但仍然可以在不同类型的原始变量之间传递值。例如,我可以将 int 的值分配给 double ,没有任何问题,只要接收该值的类型的存储容量可以处理它。 参见下面每个原始类型的大小: 将值转移到具有更大存储容量的类型有一个技术名称:“扩大转换”。该术语在葡萄牙语中通常被翻译为“放...
    编程 发布于2024-11-08
  • 如何在 React 中构建天气应用
    如何在 React 中构建天气应用
    If you want to master crucial web development skills like working with API's, fetching data, and asynchronous functions such as async and await in Rea...
    编程 发布于2024-11-08
  • Go 和 Python 之间的 gRPC 通信
    Go 和 Python 之间的 gRPC 通信
    gRPC 是一个功能强大、高性能的远程过程调用 (RPC) 框架,尽管不如 REST 常用,但在某些场景中提供了显着的优势。 此外,它与语言无关,可以在任何环境中运行,使其成为服务器到服务器通信的理想选择。 我不会深入研究它的完整解释,但这里是 gRPC 的一般链接。我将提供实践教程 ...
    编程 发布于2024-11-08
  • CSS 定位中的position:sticky 和position:fixed 有何不同?
    CSS 定位中的position:sticky 和position:fixed 有何不同?
    浏览 CSS 定位的细微差别:揭开position:sticky 和position:fixed理解 CSS 定位的复杂性可能具有挑战性,尤其是对于 CSS 新手。经常出现的一个特殊困境是position:sticky 和position:fixed 之间的区别。本文深入探讨了显着差异,为那些寻求更...
    编程 发布于2024-11-08
  • 如何使用 JavaScript 将大字符串拆分为 N 大小的块?
    如何使用 JavaScript 将大字符串拆分为 N 大小的块?
    在 JavaScript 中将大字符串拆分为 N 大小的块要有效地将大字符串拆分为大小为 N 的较小块,您可以使用JavaScript 中的 String.prototype.match 方法。此方法使您能够将正则表达式模式应用于字符串并提取匹配的子字符串。使用 String.prototype.m...
    编程 发布于2024-11-08
  • 如何在 C++ 中不使用 getline() 将文件字节读入字符数组?
    如何在 C++ 中不使用 getline() 将文件字节读入字符数组?
    How to Retrieve File bytes into a Char Array in C 要在不使用 getline() 的情况下将文件字节读入 char 数组,请考虑使用 ifstream::read()。请按照下列步骤操作:打开文件:std::ifstream infile("...
    编程 发布于2024-11-08
  • 以下是一些符合条件的标题选项:

**选项 1(关注问题):**

* **如何在 Python 中创建真正不可变的对象:超越基础**

**选项 2(突出显示解决方案)
    以下是一些符合条件的标题选项: **选项 1(关注问题):** * **如何在 Python 中创建真正不可变的对象:超越基础** **选项 2(突出显示解决方案)
    Python 中的不可变对象:超越基本解决方案虽然标准元组类提供了不可变性,但本文探讨了创建不可变对象的更高级技术重写 __setattr__:一种有限的方法一个常见的解决方案是重写 setattr 方法。但是,即使在 init 函数中,这也会阻止属性设置。因此,它可能并不适合所有场景。子类化元组:...
    编程 发布于2024-11-08
  • Spring Boot:如何解决跨源问题
    Spring Boot:如何解决跨源问题
    跨源问题描述 您可能会遇到以下错误消息: 被 CORS 策略阻止:请求的资源上不存在“Access-Control-Allow-Origin”标头 此错误表示对某个地址的请求已被 CORS 协议阻止,因为资源中缺少 Access-Control-Allow-Origin 标头。 ...
    编程 发布于2024-11-08
  • 处理日期和时区转换:为什么正确的 UTC 转换很重要
    处理日期和时区转换:为什么正确的 UTC 转换很重要
    在检索选定日期范围内的数据时,我们注意到我们的计算存在一定偏差。然而,当我们将日期减少一天时,数据完全匹配! 嗯……我们的代码中处理日期的方式可能存在问题。也许时区处理不正确——是的,我是对的! 当构建涉及来自不同时区的用户的应用程序时,正确处理日期可能很棘手。在 UTC 中存储日期是确保一致性的...
    编程 发布于2024-11-08
  • gRPC:你住在哪里?你吃什么?
    gRPC:你住在哪里?你吃什么?
    A primeira vez que ouvi falar sobre RPC foi em uma aula de sistema distribuídos, ainda quando estava cursando a graduação em Ciência da Computação. Ac...
    编程 发布于2024-11-08
  • 如何为 3D 模型实现平滑的切线空间法线?
    如何为 3D 模型实现平滑的切线空间法线?
    如何实现平滑的切线空间法线修复由于切线、副法线的每面计算而导致的模型的多面外观,和法线向量,必须考虑模型预先提供的法线。每顶点法线平均第一种方法涉及计算每面法线和将其分布在形成面的顶点之间。每个顶点维护一个初始值为零的累加器向量,并且将面法线的 X、Y 和 Z 分量添加到每个涉及顶点的累加器中。此外...
    编程 发布于2024-11-08
  • 通过简单示例了解 JavaScript 中的调用、应用和绑定
    通过简单示例了解 JavaScript 中的调用、应用和绑定
    通过简单示例了解 JavaScript 中的调用、应用和绑定 使用 JavaScript 时,您可能会遇到三种强大的方法:调用、应用和绑定。这些方法用于控制函数中 this 的值,从而更轻松地处理对象。让我们通过简单的示例来分解每种方法,以了解它们的工作原理。 1....
    编程 发布于2024-11-08

免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。

Copyright© 2022 湘ICP备2022001581号-3