Firefox 4 Beta 2 发布 – 欢迎 CSS3 过渡效果

正如我们之前解释的,Mozilla 现在对我们的 Beta 计划进行更频繁的更新。因此,它来了,Firefox Beta 2 刚刚发布,在 Beta 1 发布 3 周后。

Firefox 4 Beta 1 已经带来了大量的新功能(查看 Beta 1 功能列表)。那么,这个 Beta 版本对于 Web 开发人员有什么新内容呢?

性能和 CSS3 过渡效果

此版本中 Web 开发人员的两个主要功能是**性能改进和 CSS3 变换上的 CSS3 过渡效果**。

此视频由 YouTube 托管,如果您已启用 HTML5 视频标签,则可以使用它(请参阅此处)。YouTube 视频此处

**性能:**在此新的 Beta 版本中,Firefox 带来了新的页面构建机制:保留图层。此机制可为具有动态内容的网页提供明显更快的速度,并且滚动更加流畅。此外,我们仍在试验硬件加速:使用 GPU 渲染和构建网页的某些部分。

**变换上的 CSS3 过渡效果:**Web 开发人员的主要变化可能是 CSS3 变换上的 CSS3 过渡效果。

CSS3 过渡效果提供了一种为 CSS 属性更改设置动画的方法,而不是立即生效。有关详细信息,请参阅文档

此功能在 Firefox 4 Beta 1 中可用,但在此新 Beta 版本中,您可以在变换上使用过渡效果。

CSS3 变换允许您在任何 HTML 元素上定义变换(缩放、平移、倾斜)。您可以使用过渡效果为该变换设置动画。

看到这个方块了吗?将鼠标悬停在其上,其位置 transform: rotate(5deg); 将通过平滑动画转换为 transform: rotate(350deg) scale(1.4) rotate(-30deg);
#victim {
  background-color: yellow;
  color: black;

  transition-duration: 1s;
  transform: rotate(10deg);

  /* Prefixes */

  -moz-transition-duration: 1s;
  -moz-transform: rotate(5deg);

  -webkit-transition-duration: 1s;
  -webkit-transform: rotate(10deg);

  -o-transition-duration: 1s;
  -o-transform: rotate(10deg);
}
#victim:hover {
  background-color: red;
  color: white;

  transform:  rotate(350deg) scale(1.4) rotate(-30deg);

  /* Prefixes */

  -moz-transform:  rotate(350deg) scale(1.4) rotate(-30deg);
  -webkit-transform:  rotate(350deg) scale(1.4) rotate(-30deg);
  -o-transform:  rotate(350deg) scale(1.4) rotate(-30deg);
}

基于 WebKit 的浏览器(Safari 和 Chrome)、Opera 和 Firefox 现在也支持 CSS3 过渡效果。降级(如果不受支持)是平滑的(没有动画,但样式仍然应用)。因此,您可以立即开始使用它。

演示

我编写了一些演示来展示变换上的 CSS3 过渡效果和硬件加速(请参阅上面的视频以获取屏幕截图)。

此演示显示了 5 个视频。这些视频在缩略图中为黑白颜色(使用 SVG 滤镜),而在实际大小下为彩色(单击它们)。“旋转”效果是使用 CSS 过渡效果完成的。将鼠标悬停在视频上,您将看到一个问号(?)按钮。单击它以查看有关视频的详细信息并查看应用的另一个 SVG 滤镜(feGaussianBlur)。
此页面显示了 2 个视频。左上方的视频是一个圆形视频(感谢 SVG 剪辑路径),带有 SVG 控件。主视频是可点击的(放大视频)。视频顶部的文本也可点击,以便使用 CSS 过渡效果将其发送到背景中。
此页面是图像、视频和画布元素的简单列表。单击某个元素将对页面本身应用 CSS 变换,并带有过渡效果。白色元素是可点击的(播放视频或显示 WebGL 对象)。我建议您使用硬件加速和WebGL 兼容的浏览器。对于 Windows 上的 Firefox,您应该启用 Direct2D

鸣谢

创意共享视频

多色云彩效果(MIT 许可证)

关于Paul Rouget

Paul 是一位 Firefox 开发人员。

更多 Paul Rouget 的文章……


61 条评论

  1. Rich

    在文本上转换变换时似乎有一些错误 - 请查看此处的第一个示例:http://css3.bradshawenterprises.com/#how2transitions - 似乎文本填充的宽度没有正确重新计算,导致文本在不同角度重新流动。

    2010 年 7 月 27 日 下午 1:32

    1. Paul Rouget

      已知错误。谢谢!

      2010 年 7 月 27 日 下午 1:42

  2. Michaël

    很棒的演示,一如既往!

    也许我要求太多了,但我们能否期待在未来的 Beta 版本中看到 CSS 渐变上的 CSS 过渡效果?我们已经可以使用 CSS 渐变上的 CSS 过渡效果在背景颜色和作为背景图像的部分透明 CSS 渐变(使用 rgba())上创建漂亮的视觉效果,但是如果在 CSS 渐变上使用“真正的”过渡效果,将会使这个很棒的功能变成超级棒的功能 :)

    2010 年 7 月 27 日 下午 2:04

  3. Magne Andersson

    不幸的是,在没有硬件加速的平台上,它们看起来慢得令人绝望 :/

    2010 年 7 月 27 日 下午 2:05

  4. Michael Fienen

    因此,毫无理由地,他们决定实现此功能,但通过使用自定义前缀属性来扩展另一个 CSS 功能?不要。说真的,只需实现本机 CSS3 属性即可。我不想为浏览器编写四遍相同的代码。

    2010 年 7 月 27 日 下午 2:07

    1. Rich

      虽然此功能在浏览器之间没有完全一致,但使用供应商前缀绝对是正确的做法,否则确保您的代码在每个浏览器中都能提供良好的结果将变得非常困难。

      如果您不想处理多个类似的声明,可以使用 Compass 或 Scaffold 等 CSS 预处理器来定义混合宏,或者等到它在所有浏览器中都成为稳定功能后再使用它。

      2010 年 7 月 27 日 下午 2:27

    2. Matt Wiebe

      Michael,使用前缀有一个很好的理由,我很高兴他们这么做。如果您不知道这些原因,请阅读 Eric Meyer 的文章前缀还是后处理

      2010 年 7 月 27 日 下午 9:54

    3. Craig

      这太可惜了,因为没有人关心你想要什么!阅读规范并了解人们这样做的原因,然后回来这里为如此激烈地表现得像个白痴而道歉。你真的认为你比 Mozilla、Google、Microsoft 和每个对 Web 感兴趣的公司都了解得更多吗?

      “不要”?你几岁了,6 岁吗?

      2010 年 10 月 9 日 上午 12:00

  5. Rich

    似乎实现过渡效果比听起来要难,在所有浏览器中都看到了很多关于各个部分的错误。

    2010 年 7 月 27 日 下午 2:28

  6. Ege Özcan

    这些看起来非常有前景。感谢您为准备这些演示而付出的所有努力。不仅技术上很棒,而且非常有创意和鼓舞人心。

    2010 年 7 月 27 日 下午 3:00

  7. Adam Luikart

    这避免了必须以某种方式检测不支持变换上过渡效果的 CSS 过渡引擎的噩梦场景。谢谢。

    2010 年 7 月 27 日 下午 3:50

  8. Tim Dawson

    在此页面上演示的实现似乎在 4.0b2 中有点错误,
    无衬线字体似乎没有随着方块旋转,而是保持直立。很高兴看到这一点被添加,希望 3D 空间过渡效果很快就会出现!

    2010 年 7 月 27 日 下午 3:59

    1. Paul Rouget

      已知错误。谢谢

      2010 年 7 月 28 日 上午 7:34

  9. factlicker

    Michael Fienen 脱离现实了。

    2010 年 7 月 27 日 下午 4:14

  10. Rick

    酷!新的 css 内容!!

    可惜自动更新失败了。我在查找 kernel.dll 中的入口点时遇到错误。(Windows 2000)
    我下载的完整安装程序已损坏。
    更新服务器的速度比 1 月份的糖蜜还慢。

    好吧。我明天再试一次。

    2010 年 7 月 27 日 下午 4:42

  11. J.B. Nicholson-Owens

    人们在哪里可以获取 WebM 格式的视频副本?YouTube 似乎不提供格式 43 或 45 的此视频(我所知的仅有的两个 WebM YouTube 格式代码)。

    使用 Mozilla 渴望推广的格式不是很好吗?

    2010 年 7 月 27 日 下午 6:50

    1. Paul Rouget

      如果您激活了 HTML5 Beta 功能,它就是 WebM。我认为您无法轻松从 YouTube 下载该文件。

      您可以在此处下载 OGG/Theora 版本:http://demos.hacks.mozilla.org/openweb/videos/transitions-demos.ogv

      2010 年 7 月 28 日 上午 3:42

  12. Seth

    为什么 FF 示例的 -moz-transform: rotate(5deg); 值与其他值不同?

    2010 年 7 月 27 日 下午 9:01

    1. Josh

      我认为这是个错别字。

      2010 年 7 月 28 日 上午 3:04

    2. Paul Rouget

      已修复!谢谢。

      2010 年 7 月 28 日 上午 3:26

  13. Den

    我想知道为什么 jquery 动画如此混乱 :((

    2010 年 7 月 28 日 上午 2:49

  14. Max

    喜欢这个演示!太棒了!
    但是,似乎 Christian(?)几次打断了您,这有点令人困惑。无论如何,我喜欢这种格式,即看到您谈论功能并在旁边的显示器上展示它们。

    哦,而且 Mac 上的 ff 性能很糟糕。Apple 平台上没有硬件加速吗?

    2010 年 7 月 28 日 上午 5:13

    1. Paul Rouget

      现在还没有。

      2010 年 7 月 28 日 上午 7:35

  15. Komrade Killjoy

    Firefox 现在将有多少种新的方式来从用户那里窃取焦点?

    2010 年 7 月 28 日 上午 5:45

  16. Komrade Killjoy

    太棒了,更多消耗 CPU 周期的方法

    谢谢?

    2010 年 7 月 28 日 上午 5:50

    1. Paul Rouget

      GPU 周期 :)

      2010 年 7 月 28 日 上午 7:36

  17. Cristóferson Bueno

    您好。我想知道您是否可以分享幻灯片和 WebSocket 远程控制源代码。

    谢谢。

    2010 年 7 月 28 日 上午 6:09

    1. Paul Rouget

      我正在努力,请继续关注

      2010 年 7 月 28 日 上午 7:36

      1. Bruno simioni

        此示例中关于服务器端 websocket 的任何更新/代码?

        2010 年 11 月 16 日 上午 6:34

      2. Roger Erens

        您好,Paul,

        如果您能分享您的代码,我认为这对我们中的许多人来说仍然很有趣。

        2011 年 1 月 20 日 下午 4:48

  18. Mark Curtis

    旋转方面存在一个小错误
    1. 将鼠标悬停在其上使其旋转
    2. 将光标放在“动画”中的“n”上
    3. 将光标向右移动,直到它位于红色方块之外
    4. 观察方块抽搐

    这在最新版本的 Chrome、Opera 或 Safari 中不会发生。

    2010 年 7 月 28 日 上午 6:39

    1. Daniel84

      看起来动画被取消了,因为通过旋转悬停事件再次被调用

      2010 年 7 月 28 日 上午 8:13

    2. voracity

      尽管这种抽搐很奇怪,但我认为这是正确的行为 - 除非规范处理过渡导致反馈循环?

      2010 年 7 月 28 日 下午 11:13

      1. 有没有办法模糊定时函数,使它们看起来更“自然”?

        2010 年 8 月 1 日 下午 2:22

  19. Daniel Hendrycks

    您好,今年秋季我们会看到 JagerMonkey 吗?

    2010 年 7 月 28 日 上午 7:44

    1. Christopher Blizzard

      是的!它正在开发中,但应该在今年秋季发布 Firefox 4 之前完全完成。

      2010 年 8 月 15 日 上午 10:57

  20. suganda

    我强烈支持 Firefox,因为我浏览时一直使用 Firefox。
    谢谢。

    2010 年 7 月 28 日 上午 8:57

  21. Bart K.

    我在装有 Nvidia 显卡的机器上运行 Fedora 13。有没有办法启用硬件加速?

    2010 年 7 月 28 日 上午 10:14

  22. Chris

    嗨,我在视频里,我现在是受欢迎的亚洲人了,kkthxbai。

    2010 年 7 月 28 日 下午 2:25

  23. discoleo

    我无法在 Win2k 上启动它。

    错误信息:无法在动态链接库 kernel32.dll 中找到过程入口点 TrlCaptureContext。

    希望这个问题很快就能解决。

    2010年7月28日 14:30

  24. discoleo

    我无法在 Win2k 上启动它。[更正:*Rtl*]

    错误信息:无法在动态链接库 kernel32.dll 中找到过程入口点 RtlCaptureContext。

    希望这个问题很快就能解决。

    2010年7月28日 14:31

    1. Paul Rouget

      已知错误。谢谢。

      2010年7月29日 01:56

  25. Victor

    我遇到了与 discoleo 一样的问题。
    还要注意,我遇到了
    Shockwave 导致 Firefox 崩溃的问题。
    与创建
    缓存转储文件有关,当遇到任何
    与 Flash 应用程序相关的事情时。
    请帮忙!!!

    2010年7月29日 10:20

  26. mathis the aznas owner

    我也在 Win2k 上遇到了错误...希望它很快就能得到修复
    无论如何,Firefox 团队的工作很棒 :)
    但我因为这个问题无法使用它 :(
    帮帮我

    2010年7月29日 16:18

  27. Anthony Calzadilla

    这太棒了。Mozilla 会支持 @keyframes 动画吗?另外,如何将 SVG 文件作为 CSS 背景图像使用?

    2010年7月29日 21:59

    1. Christopher Blizzard

      将 SVG 文件用作 CSS 背景图像的功能正在 Firefox 4 的开发计划中。

      2010年8月15日 11:00

  28. Komrade Killjoy

    @Paul

    如果某个工作站上没有 GPU 支持,CPU 周期会继续消耗吗?

    2010年7月29日 23:17

  29. nemo

    @Anthony
    https://bugzilla.mozilla.org/show_bug.cgi?id=231179
    https://bugzilla.mozilla.org/show_bug.cgi?id=506826(类似且在我看来更酷)

    https://mdn.org.cn/en/Firefox_4_for_developers#Graphics_and_video

    2010年7月30日 11:48

  30. Ingo Rautenberg

    在使用版本 4 beta 2 的 Win2k 计算机上也遇到了 dll 加载(或未加载)问题。已回退到功能正常的版本 4 beta 1

    2010年7月30日 13:56

  31. Peter Geil

    如果“transitionend”有一个额外的事件属性,我们可以用它来确定整个转换过程是否已完成(即所有属性都已转换),那就太好了。

    不过,到目前为止,工作做得非常好!!

    2010年7月31日 08:49

  32. Charles

    Firefox 4 Beta 1 – 在 Windows 2000 中运行。
    Firefox 4 Beta 2 – 在 Windows 2000 中无法运行。
    错误信息:无法在动态链接库 kernel32.dll 中找到过程入口点 RtlCaptureContext。

    2010年8月1日 15:20

  33. Thiago

    Mozilla 在 HTML 和 CSS 方面始终领先,感谢 Mozilla

    2010年8月25日 04:17

  34. marc

    旋转后我得到错误的偏移值,有什么解决方法吗?

    2010年8月28日 20:47

  35. m

    有了这些和 WebGL,我们是否仍然需要 Flash Player 才能在 YouTube 上观看视频?

    2010年10月15日 09:59

  36. Gamal El-shal

    我爱 Firefox

    2010年10月21日 10:46

  37. Mark

    喜欢 Firefox – 从未想过使用其他浏览器!不过有一件事困扰着我(我使用的是 3.6.13)...图片怎么了?与其他浏览器相比,它们总是显得有点模糊。

    2010年12月13日 08:20

  38. thinsoldier

    “看到这个框了吗?将鼠标悬停在其上,然后...” 观看它抽搐!

    这应该像在 Webkit 中那样工作!

    2010年12月22日 13:54

  39. quixote

    数据点:我在 Ubuntu(Maverick)上运行 FF 4.0b10,使用的是酷睿 i7 CPU(英特尔显卡,没有独立显卡),运行良好。在演示文稿演示中,有一些地方在等待我的 ISP 带宽赶上时会稍微滞后,但这并非 CSS3 的错误。转换、视频和其他所有内容都运行流畅。

    现在我们只需要一个网络,他们不能利用它来制作更惹眼的广告。我只是希望 Wladimir Palant 正在关注这件事!

    2011年1月19日 13:24

  40. evalica

    a img {
    filter: url(#blackandwhite);
    }

    运行良好。

    a:visited img {
    filter: url(#blackandwhite);
    }
    无法运行 :(

    2011年4月5日 11:00

  41. m lyakhovsky

    http://jsfiddle.net/gdD8n/ Firefox 18 中的任何 CSS3 元素都无法工作,为什么?

    2012年11月29日 11:36

  42. m lyakhovsky

    -webkit-border-radius: 25px;
    这应该是最简单的,但它却无法工作。

    2012年11月29日 11:40

本文评论已关闭。