我有这个 svg,它基本上是多边形内的“Y”,但我无法设法将多边形内的“Y”垂直和水平居中,这里是 svg:
<svg id="logo" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" fill="none">
<title>Loader Logo</title>
<g>
<g id="Y" transform="translate(11.000000, 5.000000)">
<path
d="m 35,37.018555 c 3.686193,8.066969 7.372385,16.133937 11.058578,24.200905 0,6.557364 0,13.114728 0,19.672093 2.577904,0.07335 5.155807,0.146697 7.733711,0.220046 0,-6.753756 0,-13.507511 0,-20.261265 4.224292,-8.815029 8.450947,-17.628029 12.673514,-26.444539 -2.882118,-0.08201 -5.764235,-0.16401 -8.646353,-0.246014 -2.621719,5.556806 -5.242844,11.114115 -7.86433,16.671119 -2.596764,-5.705351 -5.191816,-11.412041 -7.78969,-17.116521 -2.929616,-0.08336 -5.859232,-0.166714 -8.788847,-0.250069 0.541139,1.184749 1.082278,2.369497 1.623417,3.554245 z"
fill="#64ffda"/>
</g>
<path id="outline"
stroke="#64ffda"
strokeWidth="5"
strokeLinecap="round"
strokeLinejoin="round"
fill="none"
d="M 50, 5
L 11, 27
L 11, 72
L 50, 95
L 89, 73
L 89, 28 z"
/>
</g>
</svg>
我尝试了所有方法,从使用 CSS 到尝试绘制另一个 Y 居中的 svg,但都不起作用
注意:你的大多数 SVG 属性都是错误的,SVG属性不是CamelCased
对于动态定位任何事物:
您可以通过在路径上设置动画来精确定位元素
文档:https ://developer.mozilla.org/en-US/docs/Web/SVG/Element/mpath
我降低了你的 Y 路径精度:https: //yqnn.github.io/svg-path-editor/# )
SVG 不知道 Y 轴的中心在哪里
transform="translate(x,y)"
animateMotion keyPoints="0;.001"
为“禁用”移动visibility="hidden"
是为了防止 FOUC(无样式内容的 Flash)keyPoints="0;.5"
在动画结束时将其设置为 #track mpath 的中间位置设置
dur="1s"
为dur="0.001s"
“即时显示”将描边设置
#track
为visibility="hidden"
移除引导圈
完毕
原因是你使用了错误的
transform
。我更新了你的svg
代码,现在可以按你想要的方式工作了。