关于:将主页片段提升到新的水平。

如果您是 Firefox 用户,今天早上启动浏览器或在地址栏中输入 “about:home”,您会惊喜地发现,Firefox 徽标被一个庆祝全球社区精神的动画所取代。这只是对 mozilla.org 页面和 Mozilla 沟通渠道的众多计划改进之一。

为了让您一窥幕后并了解其制作过程,我们向来自 Particle 的 Bruce MacFarlane 提出了几个关于动画的问题。Particle 自成立以来一直与硅谷顶级公司合作,探索使用 HTML5 和 CSS 的方法。他们拥有独特的才华组合,在创意开发和工程之间游刃有余,使像这样的项目成为可能。

1) 您好,当您被要求制作这样的动画时,您的创意过程是怎样的?您会先画草图、使用 Flash 或 Maya 等工具进行动画制作,还是直接开始编写代码?

我发现列出将要发生的事情的步骤列表并尝试将整个动画可视化很有帮助,从而了解它在幕后最有可能如何运作。如果我对某些部分不太确定如何处理,我会将其分解成一个单独的概念验证沙盒文件,在那里我可以专注于那件事并确保正确完成。之后,就可以轻松地将所有部分组合在一起。

2) 动画背后的主要技术是什么?Canvas?CSS?为什么选择它?

动画完全使用 CSS 完成,以利用其易用性和流畅性。
虽然类似的东西可以使用 Canvas 完成,但这将需要更多设置代码,而且我们无法利用 CSS3 方便的计时函数。

此外,能够像使用基本样式一样使用类名来触发动画序列是一个巨大的优势。

在这个动画中,我们能够定义一个关键帧,它通过缩放和透明度进行播放,然后将其应用于所有五个火焰层,让动画持续时间和延迟的差异产生变化。

3) 我假设 Firefox 的起始页是一个特殊的环境。您在性能和连接性方面遇到了哪些限制?

由于运行动画的代码被加载到一个预先存在的页面上,因此在加载时我们确实需要做一些逻辑处理,以调整一些初始内容并将我们的新内容移动到位置,然后再运行动画。

Snippet 是一个单一代码文件,它被加载到一个预先存在的页面上,因此需要考虑某些因素。为了减少对资源的额外请求,任何图像都必须进行 base64 编码并直接输入代码中。这比听起来容易得多。有许多网站可以上传图像并让它返回 base64 编码。我倾向于使用几个简单的 PHP 命令来完成相同的事情。

$image = file_get_contents('image.png');
$imagedata = base64_encode($image);
echo($imagedata);

此外,如果动画必须与屏幕上已有的内容进行交互(并且可能处于相对位置,这会导致动画问题),则需要进行一定程度的工作来构建之前的内容以与新内容协同工作(将移动部分包裹在一个容器中,该容器仍然可以相对于窗口大小移动,以便您可以在其中绝对定位元素,等等)。

4) 在优化时,您有时会发现自己需要一遍又一遍地执行相同的任务并构建工具来完成它们。您是否使用了现有的工具,还是正在构建一些工具?

在 Mac 上进行开发,我们最终会经常使用 “活动监视器” 实用程序应用程序,它可以帮助监控内存和 CPU 使用情况。About:home 片段是一个独特的动物,只有 Firefox 用户才能看到它们。对于在各种设备和浏览器上观看的网站和 Web 应用程序,我们开发了一些内部工具,这些工具可以帮助简化兼容性问题,并在我们很快将发布的项目中快速构建项目。

5) 基于您的经验,您认为是否有市场需求动画工具来输出像您这样的代码?您知道有什么这样的工具吗?大约一年前有一些这样的工具(Adobe Edge、Animatable…),但我还没有看到任何得到大力推广的工具。

当然,有些动画的关键帧会变得非常复杂,这些工具可以帮助我们节省大量时间。我们还没有最喜欢的工具,但我们一直在关注。

6) 那么遗留支持呢?值得在旧浏览器上进行测试和调整,还是使用静态图像回退更合理?

支持一定数量的遗留浏览器始终很重要,静态图像回退有时是唯一合理的选择。

7) 如果开发人员想要从他们自己的类似动画开始,您认为最大的时间浪费是什么?有哪些好的捷径?

有时很容易陷入包含大量移动部件的动画,而且持续时间很长。在这种情况下,我发现将动画分解成可以由父容器类名触发的场景很有帮助。
有时在这些场景中,我会对每个元素应用相同的动画持续时间,并在关键帧百分比内处理时间。这样,以后就可以轻松地在时间轴中对各个元素进行调整。

感谢 Bruce。

您怎么看?期待看到更多展示新技术的实验。您想看到什么,或者您希望我们发布什么信息?请在下面发表评论。

关于 Chris Heilmann

HTML5 和开放网络的倡导者。让我们一起解决这个问题!

更多 Chris Heilmann 的文章…


12 条评论

  1. malexis

    感谢您让我们一窥幕后。这个动画看起来很棒。

    2012 年 7 月 25 日 下午 12:58

  2. Bollie

    我怎样才能摆脱我 Zigboom Mozilla 起始页上那个荒谬的火炬?

    2012 年 7 月 25 日 下午 5:30

  3. Rainmaker

    您好,

    是的,我已经使用 Firefox 几年了,这是我最喜欢的浏览器。感谢您为此。不过,我必须说,我对新增的带有 MMXII 的火焰火炬非常反感。它看起来像一个光明会的信息,让我对继续使用 Firefox 感到非常不安。可能这不是设计师的本意,但潜意识里,它传达了某种 “其他” 的东西……我比奥林匹克的庆祝主题听到更多的是这个。事实上,奥林匹克的理念被它掩盖了,因为这个理念已经通过 Firefox 中存在的卓越联系实现了。所以, “使命” 已经完成了。现在任何燃烧的东西都不是一个积极的信号,尤其是在科罗拉多州和怀俄明州。

    谢谢您。

    2012 年 7 月 25 日 下午 7:49

  4. Dmitry Pashkevich

    我没有看到动画!它不见了吗?

    2012 年 7 月 26 日 上午 1:22

  5. Justin Dolske

    亲爱的 Rainmaker,没有什么好担心的。Fnord。

    2012 年 7 月 27 日 下午 12:14

  6. Donovan

    冠军的火之祭坛!

    我想要它。

    奥运会结束后,有没有办法让它保留下来?
    这项工作非常漂亮,它是一个很棒的方式来纪念内心的奥运精神。

    而且这项工作非常棒。我想要它!!!

    2012 年 7 月 31 日 下午 4:43

  7. donovan

    Rainmaker 先生,

    这不可能。与普遍看法相反,潜意识信息要发挥作用,隐藏的信息必须得到很好的理解。
    自己试试。听一段你听不懂的外国语言,然后试着理解它。或者阅读一篇关于核巨共振的短文,并做几个示例题。你日常生活中对原子性质的潜意识 “介入” 是否帮助你理解一个你可能一无所知的主题?没有。:)

    所以,交流的真相是它完全依赖于共同语言、学习和其他类似变量。

    在这种情况下,主题是国际奥林匹克运动会。而不是 “其他”,当然也不是其他地方的不幸事件。(但我对他们表示慰问和希望。)
    正如大多数国际人士一样
    - 不了解你提到的那些不幸事件,
    - 了解但坦率地说根本不在乎,
    - 已经有意识地选择让他们的思维进行其他潜意识联系(您还记得杰西·欧文斯奇迹般地蔑视希特勒……当着他的面!这让大力神自己也热泪盈眶,于是他拔起一棵树来擦眼泪。
    (或者慕尼黑奥运会,或人们选择珍视生命的方式。)

    我们(或他们,或任何其他人)不可能先按照您提到的方式解释这条信息。

    但你却可以做到。(难道你不崇拜杰西·欧文斯吗?或者埃比尼泽·斯克鲁奇!)

    只有在有人说(嘿!这是我的解释,我不喜欢它!)

    非洲、亚洲和中东的人们观看与我们相同的电视节目,聆听与我们相同的音乐(除非被禁止),但他们仍然保留着自己的社会习俗,并没有采用欧洲或西方的社会习俗。

    奥运会是我们共同遗产的一部分。它就在那里!它就在那里向世界展示我们人民的能力,不能被那些自私的艺术家们用卑鄙的动机所贬低。

    然而,Mozilla 应该包含一个开关。总有人以不同的方式看待事物。感谢上帝赐予我们自由和民主。 :)

    2012 年 8 月 1 日 下午 8:01

  8. Donovan

    改变我的想法。我也不喜欢它。

    不向偶像献祭。

    2012 年 8 月 3 日 上午 1:49

  9. cCc vAdEr

    太棒了!喜欢它!=D 有机会获得样本吗?

    2012 年 8 月 3 日 下午 1:05

  10. Sharon

    我希望能够简单地删除这些动画。它们拖慢了我的电脑速度。奥运圣火消失时我感到很欣慰,现在我手机上出现了一个小机器人,它又开始拖慢一切。我该怎么删除它?我使用 Firefox 已经很多年了,我一直很喜欢它,因为它很简单,没有被很多愚蠢的动画拖慢速度。

    2012 年 9 月 17 日 下午 5:44

    1. Robert Nyman

      如果你进入“偏好设置”>“常规”,你可以选择在 Firefox 启动时显示哪个页面。有关更多信息,请查看 如何设置主页 文章。

      2012 年 9 月 18 日 上午 12:18

  11. Donovan

    致 Mozilla 有才华的管理人员和员工

    我想我可以代表大家说以下内容:

    如果 Mozilla 在做重要的事情,我们就可以忍受奇怪的动画……

    即,不向可能在我们的国家设有办事处,但实际上总部位于第三世界国家的第三方出售信息。

    即,不向使用第三世界客服代表的第三方出售信息。

    即,不向验证或信用机构提供用户数据。

    这些是我关心的问题,我将告诉你原因。
    有一天,我想激活一张信用卡,客服代表在菲律宾。我认为这是一家美国公司,我感到有点被冒犯。但随后客服代表让我核实我家庭成员的名字,她让我从三个名字中选择一个!我非常生气!(那个家伙竟然让我说出我家庭成员的名字以获取信用!!!!)当然我拒绝了。

    我们的个人信息怎么能流向第三世界!!!!

    但是看到美丽的火炬并没有让我感到反感。我喜欢它。
    看到机器人跳出来吓人有点奇怪,但你已经停掉了它。
    看到英国国旗并没有让我感到反感,即使我是美国人。

    总的来说,我支持 Mozilla。不要因为你收到的有关图形的邮件而灰心丧气。我希望你们不要出售我们客户的隐私。

    总的来说,做得很好
    祝你好运
    愿上帝保佑美国。

    2012 年 10 月 8 日 上午 9:52

本文的评论已关闭。