首页  >  文章  >  web前端  >  为什么'transform-origin”在 Firefox 中的 SVG 组上不起作用,如何修复它?

为什么'transform-origin”在 Firefox 中的 SVG 组上不起作用,如何修复它?

Barbara Streisand
Barbara Streisand原创
2024-11-22 21:22:14700浏览

Why Doesn't `transform-origin` Work on SVG Groups in Firefox, and How Can I Fix It?

SVG 组上的 Transform-Origin:Firefox 特定解决方案

在 Firefox 中,在 SVG 组上设置 Transform-Origin 是一项持久的操作问题,让开发人员感到困惑,为什么它看起来不起作用。为了解决这个问题,让我们深入研究一个已被证明有效的解决方案。

为了说明这个问题,请考虑以下 SVG 代码:

<svg>
  <g>

Firefox 将忽略 transform-origin 属性,这意味着该组的变换不会发生在其预期中心周围。

解决此问题的关键在于修改 SVG 设计。不应在组内绘制形状,而应以使其中心与坐标原点 (0, 0) 对齐的方式创建形状。例如:

<svg>
  <rect>

在这种情况下,矩形的中心与坐标原点对齐。随后,您可以使用 CSS 创建过渡和动画,Firefox 将围绕组的中心正确执行这些过渡和动画。

例如,以下 CSS 片段将在 Firefox 中围绕其中心旋转组(和矩形):

#myObject {
  transform: rotate(0deg);
  transition: all 1s linear;
}

.csstransforms.csstransitions.js-rotateObject #myObject {
  transform: rotate(360deg);
}

该解决方案有效解决了 Firefox 中的变换源问题,允许以 SVG 组为中心进行无缝变换。

以上是为什么'transform-origin”在 Firefox 中的 SVG 组上不起作用,如何修复它?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn