搜索
首页web前端css教程掌握CSS基本动画概念

CSS动画:赋予网站活力与动感的魔法

CSS动画如同魔术般,让网站更具活力和吸引力。通过动画,您可以轻松移动网站元素、更改其颜色并平滑调整其大小。

为了使您的动画更具互动性和流畅性,您首先需要了解基本的动画概念。在本篇文章中,您将学习动画的基本规则语法和动画属性,以控制动画的行为。

让我们开始吧!?

要开始使用CSS动画,您需要了解两个基本组件:

  • @keyframes: 动画的蓝图。
  • 动画属性: 控制动画的设置。

@keyframes

@keyframes是动画的路线图,您可以在其中定义动画的起点和终点以及动画之间的步骤。

这意味着,这部分定义了动画如何开始,如何在中间运行以及动画如何结束。

语法:

<code>@keyframes animationName {
  from {
    /* 开始样式 */
  }
  to {
    /* 结束样式 */
  }
}</code>

例如:

<code>@keyframes fadeIn {
  from {
    opacity: 0; /* 不可见 */
  }
  to {
    opacity: 1; /* 可见 */
  }
}</code>

在此示例中,元素的不透明度将从0开始,然后变为1。

在继续之前,请查看这份电子书,它将使您成为CSS动画专家:

? CSS动画精要:最佳实践、技巧和性能提示

从简单的淡入淡出到复杂的动画,这份电子书涵盖了掌握CSS动画所需的一切,包括:

  • 定时函数
  • 关键帧和动画流程
  • 性能优化
  • 真实世界的应用

非常适合希望创建流畅CSS动画的开发者。立即获取您的副本!

动画属性

为了自定义CSS动画,使用了不同的属性,每个属性都有其自身的作用,定义了动画的行为。

动画属性直接应用于元素,定义动画的名称、持续时间、延迟、方向等。

语法:

<code>.element {
  animation-name: fadeIn; /* 动画名称或@keyframes */
  animation-duration: 2s; /* 动画持续时间 */
}</code>

例如:

<code>.box {
   height: 100px;
   width: 100px;
   background-color: rgb(44, 117, 117);
   animation-name: fadeIn;  /* 动画名称 */
   animation-duration: 2s; /* 动画持续时间 */
}
@keyframes fadeIn {
   from {
     opacity: 0; /* 不可见 */
   }
   to {
     opacity: 1; /* 可见 */
   }
}</code>

在此示例中,类名为“box”的元素最初将不可见,两秒钟后将可见,从而产生平滑的淡入效果。

在CSS中,您有以下动画属性:

  • animation-name
  • animation-duration
  • animation-timing-function
  • animation-delay
  • animation-iteration-count
  • animation-direction
  • animation-fill-mode
  • animation-play-state

现在,让我们了解每个属性。

animation-name

作用:

此属性用于定义应应用哪个@keyframes动画。

例如,如果您有两个名为fadeIn或fadeOut的@keyframes,则可以使用animation-name属性定义应在哪个元素上应用fadeIn动画以及在哪个元素上应用fadeOut动画。

语法:

<code>animation-name: animationName;</code>

例如:

<code>animation-name: fadeIn;</code>

animation-name属性是运行动画所必需的。

animation-duration

作用:

此属性定义动画的持续时间,即动画运行需要多长时间。

您可以以秒(s)或毫秒(ms)为单位定义动画持续时间。

语法:

<code>@keyframes animationName {
  from {
    /* 开始样式 */
  }
  to {
    /* 结束样式 */
  }
}</code>

例如:

<code>@keyframes fadeIn {
  from {
    opacity: 0; /* 不可见 */
  }
  to {
    opacity: 1; /* 可见 */
  }
}</code>

如果您不定义animation-duration,则它将自动设置为0s(默认值),这将使动画实际上失效。

animation-timing-function

作用:

此属性用于定义动画的速度模式。这意味着,您可以使用此属性定义动画是缓慢开始、以恒定速度运行还是快速运行。

它具有以下值:

  • linear:动画将以恒定速度运行。
  • ease:缓慢开始,中间快速,缓慢结束。
  • ease-in:缓慢开始。
  • ease-out:缓慢结束。
  • ease-in-out:缓慢开始和缓慢结束。
  • cubic-bezier(x1, y1, x2, y2):自定义速度模式。

示例:

<code>.element {
  animation-name: fadeIn; /* 动画名称或@keyframes */
  animation-duration: 2s; /* 动画持续时间 */
}</code>

animation-delay

作用:

此属性定义动画在开始之前将等待多长时间,即动画的延迟。

语法:

<code>.box {
   height: 100px;
   width: 100px;
   background-color: rgb(44, 117, 117);
   animation-name: fadeIn;  /* 动画名称 */
   animation-duration: 2s; /* 动画持续时间 */
}
@keyframes fadeIn {
   from {
     opacity: 0; /* 不可见 */
   }
   to {
     opacity: 1; /* 可见 */
   }
}</code>

示例:

<code>animation-name: animationName;</code>

animation-iteration-count

作用:

此属性用于定义动画的重复次数,即动画将重复多少次。

它具有以下值:

  • 1:动画将只运行一次(这是默认值)。
  • infinite:动画将不断重复。
  • 任何数字:动画将运行您定义的次数。

示例:

<code>animation-name: fadeIn;</code>

animation-direction

作用:

此属性定义动画的方向。

它具有以下值:

  • normal:动画将向前运行(这是默认值)。
  • reverse:动画将反向运行。
  • alternate:动画将交替运行,一次向前,一次向后。
  • alternate-reverse:动画将首先反向运行,然后向前运行。

示例:

<code>animation-duration: time;</code>

animation-fill-mode

作用:

此属性用于定义动画开始之前和结束之后的元素样式。它定义了在动画未播放时应将哪些样式应用于元素。

它允许您控制动画之前和之后元素的外观,使您在动画过程中管理元素状态时更灵活。

它具有以下值:

  • none:动画前后不应用任何样式。
  • forwards:保留动画的结束样式。
  • backwards:这也会在延迟时间内应用动画的起始样式。
  • both:处理开始和结束的样式。

示例:

<code>animation-duration: 4s; /* 动画将运行4秒 */</code>

animation-play-state

作用:

此属性指定动画的状态:运行或暂停。

它具有以下值:

  • running:动画将继续。
  • paused:动画将停止,但将保留状态。

示例:

<code>@keyframes animationName {
  from {
    /* 开始样式 */
  }
  to {
    /* 结束样式 */
  }
}</code>

此属性用于交互式动画,例如,在悬停时暂停动画。

动画简写语法

动画简写允许您在一行中定义多个动画属性。您可以将它们组合成一行以提高可读性,而不是逐个编写每个动画属性。

语法:

<code>@keyframes fadeIn {
  from {
    opacity: 0; /* 不可见 */
  }
  to {
    opacity: 1; /* 可见 */
  }
}</code>

示例:

<code>.element {
  animation-name: fadeIn; /* 动画名称或@keyframes */
  animation-duration: 2s; /* 动画持续时间 */
}</code>

这里,

  • slide:动画的名称。
  • 3s:动画持续时间为3秒。
  • ease-in-out:定时函数为ease-in-out,这意味着动画将缓慢开始,加速,然后再次减速。
  • 1s:动画将在1秒延迟后开始。
  • infinite:动画将无限重复。
  • alternate:动画将在每次迭代中在向前和向后移动之间交替。
  • forwards:动画完成后,将在最后一个关键帧(在100%处)应用的样式将被保留。

动画速查表

我创建了一个全面的CSS动画速查表,其中涵盖了CSS动画中使用的所有关键概念、属性和语法。

您可以通过单击下面的链接在GitHub上下载速查表:

https://www.php.cn/link/02f5df8adf0db026d38425594e68a007

Mastering CSS Basic Animation Concepts

就是这样。

我希望它对您有所帮助。

感谢您的阅读。

如果您觉得我的文章有帮助,并想支持我的工作,请考虑请我喝杯咖啡☕。

更多此类内容,请点击此处。

在X(Twitter)上关注我,获取每日Web开发技巧。

继续编码!!

以上是掌握CSS基本动画概念的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
这不应该发生:对不可能进行故障排除这不应该发生:对不可能进行故障排除May 15, 2025 am 10:32 AM

解决这些不可能的问题之一,这是您从未想过的其他问题的问题。

@KeyFrames vs CSS过渡:有什么区别?@KeyFrames vs CSS过渡:有什么区别?May 14, 2025 am 12:01 AM

@keyframesandCSSTransitionsdifferincomplexity:@keyframesallowsfordetailedanimationsequences,whileCSSTransitionshandlesimplestatechanges.UseCSSTransitionsforhovereffectslikebuttoncolorchanges,and@keyframesforintricateanimationslikerotatingspinners.

使用页面CMS进行静态站点内容管理使用页面CMS进行静态站点内容管理May 13, 2025 am 09:24 AM

我知道,我知道:有大量的内容管理系统选项可用,而我进行了几个测试,但实际上没有一个是一个,y&#039;知道吗?怪异的定价模型,艰难的自定义,有些甚至最终成为整个&

链接HTML中CSS文件的最终指南链接HTML中CSS文件的最终指南May 13, 2025 am 12:02 AM

链接CSS文件到HTML可以通过在HTML的部分使用元素实现。1)使用标签链接本地CSS文件。2)多个CSS文件可通过添加多个标签实现。3)外部CSS文件使用绝对URL链接,如。4)确保正确使用文件路径和CSS文件加载顺序,优化性能可使用CSS预处理器合并文件。

CSS Flexbox与网格:全面评论CSS Flexbox与网格:全面评论May 12, 2025 am 12:01 AM

选择Flexbox还是Grid取决于布局需求:1)Flexbox适用于一维布局,如导航栏;2)Grid适合二维布局,如杂志式布局。两者在项目中可结合使用,提升布局效果。

如何包括CSS文件:方法和最佳实践如何包括CSS文件:方法和最佳实践May 11, 2025 am 12:02 AM

包含CSS文件的最佳方法是使用标签在HTML的部分引入外部CSS文件。1.使用标签引入外部CSS文件,如。2.对于小型调整,可以使用内联CSS,但应谨慎使用。3.大型项目可使用CSS预处理器如Sass或Less,通过@import导入其他CSS文件。4.为了性能,应合并CSS文件并使用CDN,同时使用工具如CSSNano进行压缩。

Flexbox vs Grid:我应该学习两者吗?Flexbox vs Grid:我应该学习两者吗?May 10, 2025 am 12:01 AM

是的,youshouldlearnbothflexboxandgrid.1)flexboxisidealforone-demensional,flexiblelayoutslikenavigationmenus.2)gridexcelstcelsintwo-dimensional,confffferDesignssignssuchasmagagazineLayouts.3)blosebothenHancesSunHanceSlineHancesLayOutflexibilitibilitibilitibilitibilityAnderibilitibilityAndresponScormentilial anderingStruction

轨道力学(或我如何优化CSS KeyFrames动画)轨道力学(或我如何优化CSS KeyFrames动画)May 09, 2025 am 09:57 AM

重构自己的代码看起来是什么样的?约翰·瑞亚(John Rhea)挑选了他写的一个旧的CSS动画,并介绍了优化它的思维过程。

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

Dreamweaver Mac版

Dreamweaver Mac版

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

WebStorm Mac版

WebStorm Mac版

好用的JavaScript开发工具

Atom编辑器mac版下载

Atom编辑器mac版下载

最流行的的开源编辑器

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中