CSS Animation keyframes

2025年3月17日 | 阅读 8 分钟

在当今世界,在虚拟世界中,您几乎没有第二次机会被听到或被注意到,因为这里的创造力画布永无止境。作为一名网页设计师/开发人员,您致力于设计出艺术上引人入胜且有趣的网站。使用 CSS 动画关键帧可以使这一切成为可能。这种神奇的代码可以激发静态网站的活力,抓住观众的注意力。欢迎阅读这篇文章!在这里,我将告诉您 CSS 动画关键帧——它们的作用和工作方式。此外,我还将为您提供有用的示例,以便您可以学习如何创建令人眼花缭乱的网页动画。

理解 CSS 动画

在网页设计中,CSS 在网页的布局和视觉样式中至关重要。尽管 CSS 主要是一种静态设计工具,但它可以通过动画将动态和交互式功能融入您的在线设计。您可以使用 CSS 动画来操纵 HTML 元素的视觉属性,如颜色、大小、位置和透明度,以实现引人注目的过渡和效果。

CSS 动画基于关键帧的概念。关键帧是指动画序列中特定实例的点。特定的状态定义了元素的动画方面。作者可以指定开始和结束关键帧,从而在一种状态平滑地过渡到另一种状态。

CSS 动画关键帧至关重要。这意味着它们有助于选择动画中间步骤的排序方式,以及每个组件在每个阶段的外观。本质上,以一系列指令的形式,可以对网页上 HTML 的不同部分进行某些更改。

CSS 动画关键帧

CSS 动画关键帧由 @keyframes 规则定义。关键帧动画的基本组成部分如下:

animation CSS @keyframes 规则。例如,一个可以更改的 animation-name(动画名称)。

百分比是为不同动画阶段指定的关键帧。例如,0% 表示开始,50% 表示中点或中间,100% 表示结束。

该属性描述了当百分比块一个接一个地显示并带有相应的 CSS 值时,元素在动画的每个点的外观。

例如,让我们来看一个实际的案例。

在这个示例中,我们引入了一个 fadeIn 关键帧实例。起初,动画的透明度为 0%,不可见,而最终透明度为 100%,使动画完全可见。此动画会逐渐将元素显示出来。

应用 CSS 关键帧动画

要为 HTML 元素添加关键帧动画,请使用 animation 属性。这是一个简单的示例:

在下面一行中,使用 'ease-in/ease-out' 动画时间函数将 fadeIn 动画应用于类名为 'my-element' 的 HTML 元素,持续 2 秒钟,这会产生平滑的加速和减速效果。

示例

输出

CSS Animation keyframes

实际用例

它们在各种场景中都很有用,从简单的悬停效果到复杂的页面过渡。以下是一些实际示例:

  • 悬停效果:为按钮和链接创建简单而有效的悬停效果。您还可以缩小照片或更改其背景颜色,以在交互中营造氛围感。
  • 加载指示器:通常,动画指示器用于显示某个页面或组件正在加载。如果是这样,您可以使用关键帧来旋转指示器元素,并向用户提供视觉提示。
  • 幻灯片过渡:许多幻灯片和图像轮播使用关键帧动画来进行平滑的图像过渡。
  • 页面过渡:使用关键帧动画在网站的不同部分/页面之间移动,可以带来平滑、悦目的视图。
  • 交互式信息图:通过可视化图表、图形和统计数据,可以使信息生动且易于理解。

最佳实践

请考虑以下建议的最佳实践,以充分利用 CSS 动画关键帧:

  • 性能:使用大量资源,动画会非常耗费性能。使用硬件加速来优化您的动画,并观察动画在不同屏幕/设备上流畅运行。
  • 浏览器兼容性:验证您的动画在各种浏览器中是否都能互操作。为了提高兼容性,请在关键帧前面加上浏览器前缀,例如 -webkit- 和 -moz-。
  • 缓动函数:为该效果使用合适的缓动函数,使其感觉平滑而不是突兀。一些最常见的缓动函数包括 'linear'(线性)、'ease-in'(渐入)、'ease-out'(渐出)和 'ease-in-out'(渐入渐出)。
  • 可访问性:始终考虑可访问性。确保任何动画都不会分散残障用户的注意力或让他们感到不安,并在需要时提供替代方案。
  • 实验和迭代:通过尝试各种动画找到最适合您项目的方案,然后不断迭代。尽情尝试并不断迭代,因为 CSS 中的动画非常酷。

使用关键帧进行高级 CSS 动画

现在您已经掌握了 CSS 动画关键帧的基础知识,是时候继续前进并提升您的动画技能了。在本文中,我将教您一些复杂的方法和示例,以帮助创建更精致、更华丽的网页动画,进一步丰富您的 Web 应用程序。这种高级关键帧方法使任何级别的开发人员和设计师,无论他们是否在 CSS 动画开发方面拥有经验,都能为他们的网页注入活力。

1. 组合多个动画

CSS 动画的强大之处在于能够连接多个连续的关键帧动画。这可以非常迷人和令人惊叹。当您输入多个动画时,在 animation 属性中用逗号分隔每个动画名称。

“fadeIn”效果首先使元素淡入,然后在一秒延迟后应用“moveUp”。这种动画的链接允许复杂运动和变换序列出现。

2. 动画方向

默认情况下,动画向右播放,但动画方向可以配置为不同的值。animation-direction 参数的两个最常见选项是“normal”(默认)和“alternate”。“alternate”参数会导致动画在每次循环后改变方向,给人一种图像来回移动的印象,就像乒乓球一样。

动画向左移动 2 秒,然后反向播放动画,并来回移动。

3. 动画填充模式的使用

动画填充模式决定了动画开始前和结束后元素的样式。'forwards' 意味着在动画完成后使用最后一个关键帧样式,而 'backwards' 意味着在动画开始前应用第一个关键帧样式。

在此图中,元素在动画结束前以“forwards”填充模式滑入到位。

4. 动画延迟

关键帧动画也可以使用 animation-delay 属性进行延迟。动画可以在网站上同步,或者您可以添加延迟来建立期待感。

“rotate”动画在元素首次出现一秒后开始工作,营造出延迟旋转的错觉。

5. 自定义计时选项

缓入缓出(easing-in and out)计时函数的用法很常见。但是,您可以使用 cubic-bezier 函数创建自己的计时算法来确定每个关键帧的计时。通过这种方式,可以调整每个动画步骤的速度和加速参数。

我们创建了一种使用 cubic-bezier 函数创建动画曲线的独特方法。通过这条曲线,您可以跟踪动画内的变化速率并识别其视觉外观。

6. 3D 变换

CSS 动画允许进行的不仅仅是 2D 变换。使用 3D 变换为您的动画增添深度和真实感。例如,您可以沿着元素的 x 轴、y 轴和 z 轴旋转一个图层,以产生吸引人的 3D 效果。

“rotate3D”动画同时使用了 rotateX 和 rotateY 来在两个轴上创建平滑的 3D 旋转效果。

结合所有这些概念的示例

输出

CSS Animation keyframes

结论

借助高级 CSS 动画关键帧,您可以创建具有无限可能性的精彩网页动画。借助这些功能,您可以提升您的网页设计和开发技能,例如链接动画、控制动画方向、使用填充模式、应用延迟以及创建自定义计时函数。

确保您对这些高级技术的探索侧重于找到原创性与可用性之间的平衡。用户体验应侧重于简单的动画。您必须在多个平台上进行测试,以确保用户在使用不同浏览器和其他设备时获得流畅、一致的交互。

这些高度先进的 CSS 动画关键帧技术将使您能够设计出精美且引人入胜的网页,让您的用户铭记于心。因此,让您的想象力飞翔,尝试这些技术,并开发引人入胜的网页。


下一主题CSS 模糊