我需要使用javascript调整和旋转SVG文档中的某些元素。问题是,默认情况下,它总是在(0, 0) -左上角的原点周围应用变换。
我如何重新定义这个变换锚点?
我尝试使用transform-origin属性,但它不会影响任何内容。
我是这样做的:
svg.getDocumentById('someId').setAttribute('transform-origin', '75 240');它似乎没有将轴心点设置为我指定的点,尽管我可以在Firefox中看到该属性已正确设置。我尝试了像center bottom和50% 100%这样的东西,带括号和不带括号。到目前为止,一切都不起作用。
有人能帮上忙吗?
发布于 2011-07-16 07:16:58
若要旋转,请使用transform="rotate(deg, cx, cy)",其中deg是要旋转的度数,(cx,cy)定义旋转中心。
对于缩放/调整大小,您必须平移(-cx,-cy),然后缩放,然后平移回(cx,cy)。您可以使用matrix transform来实现这一点
transform="matrix(sx, 0, 0, sy, cx-sx*cx, cy-sy*cy)"其中sx是x轴上的比例因子,sy是y轴上的比例因子。
发布于 2020-07-04 01:23:45
svg * {
transform-box: fill-box;
}应用transform-box: fill-box将使SVG中的元素表现为普通的HTML元素。然后,您可以像往常一样应用transform-origin: center (或其他东西
没错,transform-box: fill-box。如今,不再需要任何复杂的矩阵内容
发布于 2015-09-02 01:53:49
如果可以使用固定值(不是"center“或"50%"),则可以使用CSS:
-moz-transform-origin: 25px 25px;
-ms-transform-origin: 25px 25px;
-o-transform-origin: 25px 25px;
-webkit-transform-origin: 25px 25px;
transform-origin: 25px 25px;一些浏览器(如Firefox)不能正确处理相对值。
https://stackoverflow.com/questions/6711610
复制相似问题