【发布时间】:2019-12-10 17:53:26
【问题描述】:
我用一辆汽车(图像)制作了一个 svg,它跟随鼠标并将其保持在圆心。
这在 Windows 中运行良好。 (在 Chrome、Firefox、Edge 上测试)。
问题
当位置改变并设置旋转时,汽车会无缘无故地改变大小。这发生在 IOS 设备上(我认为)(在 Macbook - Safari 和 iPhone - Safari 和 Chrome 上测试)
通过设置图像的x 和y 来简单地改变位置。通过设置属性transform 来更改旋转(我认为是导致问题的原因)。
image.setAttributeNS(null, 'x', (xy.x - (12 * 0.25)));
image.setAttributeNS(null, 'y', (xy.y - (5.4 / 2)));
image.setAttributeNS(null, 'transform', 'rotate(' + (180 - angle) + ',' + xy.x + ',' + xy.y + ') ');
我制作了一个fiddle,当点击button 时,它会切换汽车。请在 Safari 和 Chrome 中试一试,看看有什么不同。
【问题讨论】:
-
我不太确定您为什么要重置 x 和 y 属性的值。而不是重置 x 和 y 的值,您只能像这样围绕圆心 (21,21) 旋转汽车:
image.setAttributeNS(null, 'transform', 'rotate(' + (180 - angle) + ',21,21) ');如果这不是您需要的,请解释为什么需要重置值x 和 y。 -
@enxaneta 汽车需要沿着整个圆圈移动,它的鼻子始终指向中心。如果
x和y未设置,则汽车只会在同一点转弯。
标签: javascript svg svg-animate