把 SVG path/line/circle 变成“正在被画出来”的效果,做 Logo、Loading、强调线条都很香。
它怎么做到的?核心是 stroke-dasharray 和 stroke-dashoffset:
先把“虚线间隔”设成路径总长度,再把 dashoffset 从总长度动画到 0。
.stroke-draw { fill: none; stroke: var(--accent-color); stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; }
xjs(svgPath).draw() 会自动读取 getTotalLength() 并设置 dasharray/dashoffset。