【问题标题】:CSS rotation animation breaks in SafariSafari 中的 CSS 旋转动画中断
【发布时间】:2019-05-16 09:10:09
【问题描述】:

我今天在 Safari 中偶然发现了一个奇怪的行为,我不知道是什么导致了这个问题。

在创建以特定模式旋转 SVG 元素的动画时,在 Chrome 中一切正常,Safari 在每个动画步骤中只显示一半的 SVG。

当我从 .container 元素中删除 background-color: white; 时,一切正常。背景颜色会如何导致这种行为?

这是一个演示视频以及相应的 JSFiddle:

JsFiddle: https://jsfiddle.net/04zgmbup/

Chrome(预期):

Safari(意外):

【问题讨论】:

  • 您需要包含 svg 标签才能获得所需的帮助;)
  • @TemaniAfif 需要详细说明吗?我已经包含了一个显示问题的 JsFiddle。
  • 您正在使用 SVG,因此您需要将 SVG 标签添加到您的问题中以获得更好的可见性(已经完成)
  • 哦,我以为你在谈论 HTML 标签。感谢您的编辑!
  • 也许这会告诉你更多的出价caniuse.com/#search=transform

标签: html css svg safari css-animations


【解决方案1】:

好的,显然我已经解决了这个问题。

Safari 似乎将容器背景当作飞机处理。 这意味着当项目旋转时,一半将始终在容器后面旋转,该容器具有覆盖元素本身的白色背景。

我仍然不知道为什么其他浏览器没有这样的行为。 Safari 可能的解决方案是translateZ(width /2) 元素,以便所有旋转都发生在背景平面的前面。

这是更新后的小提琴,在 Safari 中工作: https://jsfiddle.net/04zgmbup/1/

通过给容器一个半透明的背景颜色可以很好地可视化问题。在下面的记录中,可以清楚地看到一半的圆圈在容器后面旋转。

【讨论】:

    猜你喜欢
    • 2015-08-24
    • 2016-05-13
    • 2015-03-29
    • 1970-01-01
    • 2021-05-17
    • 2022-01-05
    • 2014-01-23
    相关资源
    最近更新 更多