为JavaScript开发者提供的CSS动画指南

有充分的证据表明,人类的大脑对运动是有硬性规定的。人类更有可能关注元素如何移动,而不是关注静态元素。

CSS动画就是利用了这种人类行为。当动画被添加到一个网站上时,它可以将用户的注意力吸引到产品的重要区域,创造一个持久的效果,并普遍提高体验。

在这篇文章中,我们将回顾CSS动画的好处,不同的CSS动画属性,以及不同的例子,在这些例子中,JavaScript开发者可以使用CSS动画来使网站更加互动和用户友好。

每一个例子都会有一个Codepen演示和一个详细的解释,以使这些例子更加真实、实用和有价值。

CSS动画的概述

在深入了解作为一个JavaScript开发人员如何使用CSS动画之前,让我们快速回顾一下CSS动画到底是什么,为什么你需要了解它,以及它对网站的外观和感觉有什么影响。

什么是CSS动画?

顾名思义,CSS动画允许用户通过遵循一种声明式的模式对一些CSS属性进行动画处理,用户可以指定CSS属性在一段时期内的变化。

CSS动画使得从一个CSS样式配置到另一个CSS样式配置的动画过渡成为可能。

为什么你应该了解CSS动画

网络开发生态系统已经发展到一个地步,即JavaScript开发人员无法避免了解和使用CSS动画。没有动画的用户界面就像没有动作的视频游戏,而现在没有人喜欢玩纯文本的游戏了

用CSS动画来回答建立更多互动网站的需要。

CSS动画对网站有什么积极影响?

你是否曾经看过一个网站,并怀疑该页面是在加载还是坏掉了?这种常见的经历会让遇到的用户感到沮丧。

通过使用CSS动画,开发者可以通过添加一个加载动画来减轻这种挫折感,向用户发出正在发生一些事情的信号,使他们在页面上停留更长时间。

如果做得好,动画可以为网站界面增加有价值的互动、个性和有吸引力的用户体验。

动画可以使UI元素类似于现实世界,使它们平稳地变化,同时给人以连续、行动和进展的感觉,而不是一眨眼就变了。-Patrícia Silva,”如何制作CSS动画”

CSS动画的解释

动画由两部分组成:描述CSS动画的样式和表示动画样式顺序的关键帧。

让我们把这两部分分解开来,以便有效地理解它们。

描述CSS动画的样式

对于你创建的每一个动画,你都必须描述该动画的特征。这使你可以完全控制决定动画到底能做什么或不能做什么。

你可以配置的一些属性的例子包括动画的持续时间、方向和重复的次数。

要描述动画,你可以使用animation 速记属性或animation 子属性。

Animation 速记属性

animation 速记属性是八个animation 子属性的速记。它可以避免你在输入子属性名称时浪费时间,并为需要所有八个子属性的元素提供动画。

/* Here’s the syntax of the animation shorthand property */
.element {
  animation: name duration timing-function delay iteration-count direction fill-mode play-state;
}

复制代码

当你将这段代码应用于一个元素时,animation 速记属性会使页面上的元素与所有八个子属性形成动画。

参见CodePen上Didicodes (@edyasikpo)
Pen
动画速记属性 – CSS动画教程

Animation 子属性

这八个子属性组成了实际的animation 速记属性,在CSS中配置元素的动画。当你不想同时使用所有的子属性,或者忘记了动画属性中的排列顺序时,它就变得很有用。

/* Here’s the syntax of the animation sub-properties. */
.element {
  animation-name: name;
  animation-duration: duration;
  animation-timing-function: timing-function;
  animation-delay: delay;
  animation-iteration-count: count;
  animation-direction: direction;
  animation-fill-mode: fill-mode;
  animation-play-state: play-state;
}

复制代码

同样,当你把代码应用到元素上时,它就会渲染出一个动画的方形。

参见CodePen上Didicodes (@edyasikpo)
Pen
Animation sub-properties – CSS Animation Tutorial

请注意,你不能把animation 速记属性和animation 子属性放在一起使用,因为它们产生的是同样的东西。它们应该根据你想实现的目标单独使用。

你可以在MDN网络文档中了解更多关于每个子属性及其价值

当你进入关键帧时,你必须知道,如果没有关键帧来显示动画的顺序,使用样式来描述CSS动画是不可行的。

例如,下面的演示包括animation-name,animation-duration, 和animation-timing-function 三个子属性,这些子属性应该能产生心跳。

然而,你不能在心脏上看到任何动画,因为@keyframes at-rule属性还没有配置好。

请看CodePen上Didicodes (@edyasikpo)
PenA heart – CSS Animations Tutorial

使用@keyframe 来表示一个动画序列

关键帧描述了一个动画元素在动画序列中某个特定时间的渲染情况。由于动画的时间是在CSS样式中使用animation 速记属性或其子属性定义的,关键帧使用百分比来表示动画序列。

要使用关键帧,创建一个@keyframes at-rule,其名称与传递给animation-name 属性的名称相同。在心跳演示中,animation-nameheartbeat ,所以你必须把@keyframes at-rule 也命名为heartbeat

每个@keyframes at-rule包含一个关键帧选择器的样式列表,指定关键帧发生时动画的百分比,以及一个包含该关键帧样式的块。

@keyframes heartbeat {
  0% {
    transform: scale(1) rotate(-45deg);
  }
  20% {
    transform: scale(1.25) rotate(-45deg);
  }
  40% {
    transform: scale(1.5) rotate(-45deg);
  }
}

复制代码

0% 表示动画序列的第一时刻,而100% 表示动画的最终状态。

现在你理解了@keyframes ,让我们把它包含在心脏演示中,看看是否有什么变化。

请看CodePen上Didicodes (@edyasikpo) Pen
Heartbeat – CSS动画教程

正如你所看到的,心脏现在已经在跳动了!

当你添加了一个CSS@keyframes at-rule,使心脏的大小从0%40% ,你设置。

  • 0%的时间不进行转换
  • 20%的时间将心脏的尺寸放大到其初始尺寸的125%。scale(1.25)
  • 用40%的时间将心脏的尺寸放大到初始尺寸的150%。scale(1.5)

rotate(-45deg) ,是为了保持你用CSS创建的心脏的原始方向。

为JavaScript开发者提供的动画实例

在本节中,我们将回顾两个例子,在这些例子中,JavaScript开发人员可以使用CSS动画来使网站更具交互性,并改善用户的体验。

填充一个表单

表格是几乎每个网站都能看到的组件。更多的时候,填写在线表格可能是很乏味的。

在这个例子中,你将看到一个登录表单,并看到如何用JavaScript控制动画,使网站对用户来说更有互动性。当用户试图在下面的登录表格中添加他们的电子邮件地址和密码时,没有任何动画应用于该表格。

请看CodePen上Didicodes (@edyasikpo)
Pen
Form 1 – CSS Animations Tutorial

虽然没有动画的表单是完全可以的,但它在视觉上对用户没有吸引力,很可能无法吸引他们的注意力。

但是在下面的动画登录页面中,当用户开始输入他们的信息时,电子邮件密码字段中的字符会同时向上移动。

请看CodePen上Didicodes (@edyasikpo)
Pen
Form 2 – CSS Animations Tutorial

虽然这是一个微妙的动画,但它吸引了用户的注意力,并在以下方面改善了他们的体验。

  • 它向用户表明,他们已经点击了一个输入字段
  • 用户现在知道他们可以开始打字了

这可以创造一个更加友好的用户环境,让人记忆深刻,引人注目。

滚动浏览页面

当用户滚动浏览一个没有动画的网站时,他们往往会错过重要信息。

让我们滚动浏览两个有信息列表的页面,一个有静态元素,一个有动画元素。

参见CodePen上Didicodes (@edyasikpo) 的Pen
Scroll 1 – CSS Animation教程

参见CodePen上Didicodes(@edyasikpo) 的PenScroll 2 – CSS Animation 教程

因为动画将内容从左边和右边带到第二个列表中,它可以减缓用户的速度,以确保他们阅读每个选项,这与没有动画的第一个页面不同。它还可以帮助用户一直滚动到最后,以查看所有可用的信息。

我的朋友,这就是在网站上添加动画的力量!

需要一些动画的灵感吗?

这里列出了五个使用CSS动画的公司,为他们的用户创造更好的体验。如果你看一眼这些网站,互动是很有吸引力的,让你一直滚动到页面的最后,或者与页面上的某个CTA互动。

当然,这些并不是世界上唯一使用CSS动画的网站,但这五个网站很可能会给你带来你需要的灵感。

结语

综上所述,作为一名JavaScript开发者,CSS动画是你为用户创造难忘体验所需要的工具。你可以在这篇文章中找到所有Codepen的CSS动画演示

如果你有任何问题,请在下面的评论区分享,我会回复每一条评论。

The postGuide to CSS animation for JavaScript developersappeared first onLogRocket Blog.

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享