【发布时间】:2021-06-18 21:15:02
【问题描述】:
我正在 React 的演示组件中构建仪表图。
我只需要传递一个百分比,然后让组件完成剩下的工作。我无法使用任何动画,因为我正在截取组件的屏幕截图以将图像放置在 Powerpoint 演示文稿中。
这是我正在尝试做的截图:
正如您在我的代码 sn-p 中看到的,圆圈 <marker> 位于灰色 <path> 的末端,而不是绿色 <path> 的末端。如上图所示,如何定位圆圈使其位于绿色 <path> 的 stroke-linecap?
这是我目前的 HTML 代码:
<div style="width:400px">
<svg viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg">
<defs>
<marker
id="dot"
viewBox="0 0 10 10"
refX="4"
refY="4"
markerWidth="4"
markerHeight="4"
>
<circle
cx="4"
cy="4"
r="2"
fill="#FFFFFF"
stroke="#008000"
stroke-width="2"
/>
</marker>
</defs>
<path d="M20,60a35,35 0 1,1 60,0" stroke="#D3D7DB" stroke-width="4" fill="none" stroke-linecap="round"></path>
<path d="M20,60a35,35 0 1,1 60,0" stroke="#008000" stroke-width="6" pathLength="100" fill="none" stroke-linecap="round" stroke-dasharray="75 35" marker-end="url(#dot)"></path>
</svg>
</div>
【问题讨论】:
-
我正在使用手机,所以请快速提示。如果将小圆圈放在
节点中并设置正确的平移,则可以将其包裹在另一个正确设置旋转的圆圈中。不过,您需要一些脚本来根据百分比改变旋转。 -
更好的方法是使用带有弧形命令和标记的路径。标记默认自动定向,因此如果标记不是对称形状,您不必计算自己的旋转变换。
标签: javascript html svg