如何修改SVG路径方向,使文本位于半圆内侧?
简洁修改方案
要让文本显示在半圆内侧,只需对路径和文本属性做两处关键修改,代码保持极简,便于后续通过滑块调整参数:
1. 修改圆弧路径的绘制方向
将原路径的sweep-flag(A命令的第6个参数)从1改为0,圆弧会沿逆时针方向绘制,形成向下凹陷的半圆,文本沿此路径排列时会自动处于内侧:
原路径:
d="M 300 10 A 100 100 0 0 1 100 10"
修改后路径:
d="M 300 10 A 100 100 0 0 0 100 10"
2. 精简冗余文本属性
移除不必要的私有属性(如_lengthAdjust、_textLength等),仅保留核心对齐属性,方便后续动态调整:
修改后的文本代码:
<text font-size="24"> <textPath dominant-baseline="middle" text-anchor="middle" startOffset="50%" xlink:href="#demo"> Bienvenido 2024 </textPath> </text>
完整修改后的SVG代码
<?xml version="1.0" encoding="utf-8"?> <svg version="1.1" id="svg1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 500 500"> <path id="demo" fill="transparent" d="M 300 10 A 100 100 0 0 0 100 10" stroke="Black" stroke-width="2" /> <text font-size="24"> <textPath dominant-baseline="middle" text-anchor="middle" startOffset="50%" xlink:href="#demo"> Bienvenido 2024 </textPath> </text> </svg>
后续扩展(模拟抛物线)
若要通过HTML滑块调整高度,只需动态修改路径中的第二个100(即圆弧的垂直半径ry),将其绑定到滑块的value值,即可实现半圆到抛物线形态的过渡效果。
内容的提问来源于stack exchange,提问作者Renato Ramos
相关产品推荐
相关产品推荐

