N

Netflix 简介动画 - 纯 CSS

2025-05-24

Netflix 简介动画 - 纯 CSS

嘿大家,

最近,我仅使用 CSS 克隆了 Netflix 的介绍动画,并收到了一些很好的反馈,因此我认为最好能逐步分享一些有关动画开发过程的信息。

那么我们开始吧!

HTML结构

首先,我映射了 Netflix 徽标中的字母,并将它们分开,以便我可以将其用作稍后定位 HTML 元素的基本参考。

Netflix 徽标

在 HTML 中,我创建了一个带有 4 个名为 helpers 的子 div 的容器,每个 helpers 被指定为动画字母的一个“侧面”,例如,为 N 字母制作动画,将使用 3 个 helpers,因为 N 被分为 3 个独立的部分,像这样 👉 I\I

话虽如此,考虑到在容器 div 中我们有一个名为“ letter”的属性,我使用了我们在上一步中导出的图像,并且它准确地放置在“ letter”属性中每个值的辅助 div 应该所在的位置,它支持来自“NETFLIX”名称的所有字母。

Netflix 徽标上的独立字母

动画

Netflix简介

现在该关注动画部分了。动画主要由三个步骤组成。第一部分是字母各个侧面逐渐淡出,直到第二部分,主要由许多不同宽度和颜色的垂直“灯光”组成,这些灯光从字母的最后一侧出现,同时逐渐淡出。第三部分是灯光消失时应用的摄像机运动——但这部分是最简单的。

第一部分(逐渐消失)

逐渐消逝

褪色效果与用画笔“褪色”字母的效果非常相似。为了复制这种效果,我们必须意识到画笔的笔尖形状并不统一,有些笔尖是由尼龙和聚酯纤维制成的。
为此,我们必须创建一个“不规则”的渐变效果。我用 Photoshop 制作了以下画笔效果:

画笔渐变效果

之后,我将渐变的每个小块都创建成了 HTML 辅助元素,这些小块被命名为“毛皮”,每个“毛皮”都对应一个单独的“span”标签。如图所示,每块毛皮都有不同的渐变效果,这些效果也复制到了 CSS 文件中。

创建这个不规则渐变后,我使用简单的 CSS 关键帧动画使它们移动,每个助手都有自己的延迟设置来一个接一个地启动。

第二部分(彩灯)

Netflix动画中的彩色灯光

灯光背后的想法类似于画笔。但是,它不是将每个小块毛发与渐变背景混合,而是将每个灯光以随机的纯色作为背景,并带有一个用于照明效果的盒状阴影。

为了让灯光在靠近时“避开相机”,我们创建了一个带有关键帧动画的随机运动,使它们侧向移动,在灯光中间打开一个空隙。

第三部分(镜头运动)

相机运动

相机运动也使用关键帧动画来复制,但这次操作的 css 属性是主 HTML 容器的比例,因此看起来相机正在放大字母,而所有其他动画都在同时播放。

结论

最难的部分是如何协调所有动画,使其在正确的时间播放,因此“动画延迟”在这些场景中扮演着重要的角色。我在动画中采用的方法是确保动画可以在不同的背景颜色,甚至不同的字母颜色下播放,只需更改 SASS 变量,所有动画仍能正常工作。
代码还可以通过多种方式进行优化,所以如果你愿意,可以随意尝试。

就这些了,希望这篇文章能帮到大家。=)

文章来源:https://dev.to/claudiobonfati/netflix-intro-animation-pure-css-1m0c
PREV
减少 VSCode 内存消耗 如何减少 VSCode 内存使用量
NEXT
使用 React 时最常见的错误