答案 0 :(得分:4)
最简单的方法可能是使用线性梯度。
function setProgress(amt)
{
amt = (amt < 0) ? 0 : (amt > 1) ? 1 : amt;
document.getElementById("stop1").setAttribute("offset", amt);
document.getElementById("stop2").setAttribute("offset", amt);
}
setProgress(0.25);
<svg width="400" height="400">
<defs>
<linearGradient id="progress" x1="0" y1="1" x2="0" y2="0">
<stop id="stop1" offset="0" stop-color="blue"/>
<stop id="stop2" offset="0" stop-color="lightblue"/>
</linearGradient>
</defs>
<circle id="my-shape" cx="200" cy="200" r="200" fill="url(#progress)"/>
</svg>