网页动画的十二原则

转自:http://www.jianshu.com/p/1858a8733ba3

译文经作者 CSS Animation 授权转载
原文地址:Animation Principles for the Web

作为前端的设计师和工程师,我们用 CSS 去做样式、定位并创建出好看的网站。我们经常用 CSS 去添加页面的运动过渡效果甚至动画,但我们经常做的东西不会超过这些。

动效是一个有助于访客和消费者理解我们设计的强有力工具。这里有些原则能最大限度地应用在我们的工作中。

迪士尼经过基础工作练习的长时间累积,在 1981 年出版的 The Illusion of Life: Disney Animation 一书中发表了动画的十二个原则 (12 Principles of Animation) 。这些原则描述了动画能怎样用于让观众相信自己沉浸在现实世界中。

在本文中,我会逐个介绍这十二个原则,并讨论它们怎样运用在网页中。你能在 Codepen 找到它们全部的开源 HTML 和 CSS 代码 。


挤压和拉伸 (Squash and stretch)

Squash and stretch
Squash and stretch

这是物体存在质量且运动时质量保持不变的概念。当一个球在弹跳时,碰击到地面会变扁,恢复的时间会越来越短。

创建对象的时候最有用的方法是参照实物,比如人、时钟和弹性球。

当它和网页元件一起工作时可能会忽略这个原则。DOM 对象不一定和实物相关,它会按需要在屏幕上缩放。例如,一个按钮会变大并变成一个信息框,或者错误信息会出现和消失。

尽管如此,挤压和伸缩效果可以为一个对象增加实物的感觉。甚至一些形状上的小变化就可以创造出细微但抢眼的效果。

Codepen 上的源代码


预备动作 (Anticipation)

Anticipation
Anticipation

运动不倾向于突然发生。在现实生活中,无论是一个球在掉到桌子前就开始滚动,或是一个人屈膝准备起跳,运动通常有着某种事先的累积。

我们能用它去让我们的过渡动画显得更逼真。预备动作可以是一个细微的反弹,帮人们理解什么对象将在屏幕中发生变化并留下痕迹。

例如,悬停在一个元件上时可以在它变大前稍微缩小,在初始列表中添加额外的条目来介绍其它条目的移除方法。

Codepen 上的源代码


演出布局 (Staging)

Staging
Staging

演出布局是确保对象在场景中得以聚焦,让场景中的其它对象和视觉在主动画发生的地方让位。这意味着要么把主动画放到突出的位置,要么模糊其它元件来让用户专注于看他们需要看的东西。

在网页方面,一种方法是用 model 覆盖在某些内容上。在现有页面添加一个遮罩并把那些主要关注的内容前置展示。

另一种方法是用动作。当很多对象在运动,你很难知道哪些值得关注。如果其它所有的动作停止,只留一个在运动,即使动得很微弱,这都可以让对象更容易被察觉。

还有一种方法是做一个晃动和闪烁的按钮来简单地建议用户比如他们可能要保存文档。屏幕保持静态,所以再细微的动作也会突显出来。

Codepen 上的源代码


连续运动和姿态对应 (Straight-Ahead Action and Pose-to-Pose)

Straight-Ahead Action and Pose-to-Pose
Straight-Ahead Action and Pose-to-Pose

连续运动是绘制动画的每一帧,姿态对应是通常由一个 assistant 在定义一系列关键帧后填充间隔。

大多数网页动画用的是姿态对应:关键帧之间的过渡可以通过浏览器在每个关键帧之间的插入尽可能多的帧使动画流畅。

有一个例外是定时功能step。通过这个功能,浏览器 "steps" 可以把尽可能多的无序帧串清晰。你可以用这种方式绘制一系列图片并让浏览器按顺序显示出来,这开创了一种逐帧动画的风格。

Codepen 上的源代码


跟随和重叠动作 (Follow Through and Overlapping Action)

Follow Through and Overlapping Action
Follow Through and Overlapping Action

事情并不总在同一时间发生。当一辆车从急刹到停下,车子会向前倾、有烟从轮胎冒出来、车里的司机继续向前冲。

这些细节是跟随和重叠动作的例子。它们在网页中能被用作帮助强调什么东西被停止,并不会被遗忘。例如一个条目可能在滑动时稍滑微远了些,但它自己会纠正到正确位置。

要创造一个重叠动作的感觉,我们可以让元件以稍微不同的速度移动到每处。这是一种在 iOS 系统的视窗 (View) 过渡中被运用得很好的方法。一些按钮和元件以不同速率运动,整体效果会比全部东西以相同速率运动要更逼真,并留出时间让访客去适当理解变化。

在网页方面,这可能意味着让过渡或动画的效果以不同速度来运行。

Codepen 上的源代码


缓入缓出 (Slow In and Slow Out)

Slow In and Slow Out
Slow In and Slow Out

对象很少从静止状态一下子加速到最大速度,它们往往是逐步加速并在停止前变慢。没有加速和减速,动画感觉就像机器人。

在 CSS 方面,缓入缓出很容易被理解,在一个动画过程中计时功能是一种描述变化速率的方式。

使用计时功能,动画可以由慢加速 (ease-in)、由快减速 (ease-out),或者用贝塞尔曲线做出更复杂的效果。

Codepen 上的源代码


弧线运动 (Arc)

Arc-1
Arc-1

虽然对象是更逼真了,当它们遵循「缓入缓出」的时候它们很少沿直线运动——它们倾向于沿弧线运动。

我们有几种 CSS 的方式来实现弧线运动。一种是结合多个动画,比如在弹力球动画里,可以让球上下移动的同时让它右移,这时候球的显示效果就是沿弧线运动。

Arc-2
Arc-2

另外一种是旋转元件,我们可以设置一个在对象之外的原点来作为它的旋转中心。当我们旋转这个对象,它看上去就是沿着弧线运动。

Codepen 上的源代码:动画1动画2


次要动作 (Secondary Action)

Secondary Action
Secondary Action

虽然主动画正在发生,次要动作可以增强它的效果。这就好比某人在走路的时候摆动手臂和倾斜脑袋,或者弹性球弹起的时候扬起一些灰尘。

在网页方面,当主要焦点出现的时候就可以开始执行次要动作,比如拖拽一个条目到列表中间。

Codepen 上的源代码


时间节奏 (Timing)

Timing
Timing

动画的时间节奏是需要多久去完成,它可以被用来让看起来很重的对象做很重的动画,或者用在添加字符的动画中。

这在网页上可能只要简单调整 animation-duration 或 transition-duration 值。

这很容易让动画消耗更多时间,但调整时间节奏可以帮动画的内容和交互方式变得更出众。

Codepen 上的源代码


夸张手法 (Exaggeration)

Exaggeration
Exaggeration

夸张手法在漫画中是最常用来为某些动作刻画吸引力和增加戏剧性的,比如一只狼试图把自己的喉咙张得更开地去咬东西可能会表现出更恐怖或者幽默的效果。

在网页中,对象可以通过上下滑动去强调和刻画吸引力,比如在填充表单的时候生动部分会比收缩和变淡的部分更突出。

Codepen 上的源代码


扎实的描绘 (Solid drawing)

Solid drawing
Solid drawing

当动画对象在三维中应该加倍注意确保它们遵循透视原则。因为人们习惯了生活在三维世界里,如果对象表现得与实际不符,会让它看起来很糟糕。

如今浏览器对三维变换的支持已经不错,这意味着我们可以在场景里旋转和放置三维对象,浏览器能自动控制它们的转换。

Codepen 上的源代码


吸引力 (Appeal)

Appeal
Appeal

吸引力是艺术作品的特质,让我们与艺术家的想法连接起来。就像一个演员身上的魅力,是注重细节和动作相结合而打造吸引性的结果。

精心制作网页上的动画可以打造出吸引力,例如 Stripe 这样的公司用了大量的动画去增加它们结账流程的可靠性。

Codepen 上的源代码


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
提供的源码资源涵盖了Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!
提供的源码资源涵盖了小程序应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!
提供的源码资源涵盖了Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!
### 回答1: 网页设计作业是指通过使用HTML、CSS和JavaScript等前端技术,设计和开发网站页面的过程。在网页设计作业中,web前端开发人员负责将设计师提供的网页设计图转化为可以在浏览器中正常显示和运行的网页。 首先,前端开发人员需要了解网页设计的要求和目标,与设计师进行沟通以确保对设计理念的准确理解。然后,他们会使用HTML和CSS来搭建网页的结构和布局,通过设置标签、样式和布局来确保网页的具体展示效果。同时,他们还会考虑页面的响应式设计,以确保网页可以适应不同设备和屏幕大小的显示。 在网页设计作业中,前端开发人员还需要使用JavaScript和其他脚本语言来添加交互功能和动态效果。他们可以通过编写脚本来实现表单验证、轮播图、响应式菜单等功能,为用户提供更好的交互体验。 此外,前端开发人员还需要关注网页的性能和优化问题。他们会优化网页加载速度,合理利用浏览器缓存机制,减少HTTP请求等方式来提升用户体验。 最后,在完成网页开发后,前端开发人员还要进行测试和调试,确保网页的稳定性和兼容性。他们会在不同的浏览器和设备上测试网页的显示效果,并解决兼容性问题。 总的来说,网页设计作业中的web前端开发职责是将网页设计转化为具体的网页,为用户提供优质的网页展示和交互体验。他们需要熟悉HTML、CSS、JavaScript等前端技术,以及了解用户体验和性能优化的原则,以完成高质量的网页设计作业。 ### 回答2: Web前端设计是指利用HTML、CSS和JavaScript等技术来进行网页的设计和开发。网页设计师通过运用这些技术,为用户提供直观、美观且易于使用的网页界面。 首先,网页设计师需要根据用户需求和网站功能来规划和设计网页的整体布局。他们要考虑用户的使用习惯和界面的易用性,合理安排网页的各个元素,使用户能够轻松地找到需要的信息。 其次,网页设计师需要运用HTML、CSS和JavaScript等技术来实现网页的功能和效果。HTML主要用于搭建网页的骨架,CSS则用于控制网页的样式和布局。JavaScript则用于实现网页交互和动态效果,使用户能够与网页进行互动。 此外,网页设计师还需要关注网页的响应式设计。随着移动设备的普及,人们越来越多地通过手机和平板电脑访问网页。因此,网页设计师需要确保网页在不同的设备和屏幕上都能够呈现出最佳的效果,并能够自适应不同的屏幕尺寸。 最后,网页设计师还需要对网页进行测试和优化。他们要对网页进行不同浏览器和设备的兼容性测试,确保网页在各种环境下都能够良好运行。同时,他们还需要关注网页的加载速度和性能,提高用户的访问体验。 综上所述,网页设计师在进行Web前端设计作业时要考虑用户需求、合理规划网页布局、使用HTML、CSS和JavaScript等技术实现网页功能和效果,并对网页进行响应式设计、测试和优化,以提供用户友好的网页界面。 ### 回答3: 网页设计作业web前端是指通过使用HTML、CSS和JavaScript等前端技术,设计和开发出具有良好用户体验的网页。这是一个充满创造力和技术挑战的工作。 首先,网页设计师需要了解用户需求和目标,以便设计出符合用户期望的网页。他们要考虑各种因素,如网页的目的、受众特征、品牌形象等。然后,他们使用HTML语言搭建网页的基本结构,并使用CSS来美化和布局网页的元素,使其外观和样式与设计师的要求相符。 此外,为了提高用户体验,前端开发者需要运用JavaScript来增加网页交互性。JavaScript可以处理用户的行为反馈,实现动态效果和动画,并优化网页性能。他们还需要考虑响应式设计,使网页在不同的设备和屏幕尺寸上都能正常显示和使用。 在完成网页设计作业时,前端开发者还需要注意网页的可访问性和可用性。这意味着他们必须确保网页易于导航、页面加载速度快,并兼容各种浏览器和操作系统。 网页设计作业web前端需要具备一些必要的技能和知识,如HTML、CSS、JavaScript、响应式设计、用户体验等。此外,他们还需要具备良好的审美观和创造力,以便设计出令人满意的网页。这个岗位有很多发展机会,可以在不同类型的公司和行业中找到工作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值