如何在纯 SMIL 中重新创建这个 SVG 饼图动画?我希望放弃复杂的 JS,并且还能够控制动画的总持续时间:
http://jsfiddle.net/frank_o/gFnw9/19/
到目前为止,这就是我得到的全部:
http://jsfiddle.net/frank_o/46mH2/(感谢伊恩)
但不幸的是:
- 它的位置远离画布(或者一开始不是一个完整的圆圈)
- 从 9 点开始而不是 12 点开始
- 使用 Snap.svg (宁愿不依赖任何外部库,但如果我必须)
HTML:
<svg width="600" height="425">
<path d="M 100, 100 m -75, 0 a 75,75 0 1,0 150,0 a 75,75 0 1,0 -150,0" fill="none" stroke="black" stroke-width="150" stroke-dasharray="0 600 600 0" stroke-dashoffset="1000">
<animate attributeType="XML" attributeName="stroke-dashoffset" from="0" to="600" dur="1s" repeatCount="1" fill="freeze"/>
</path>
</svg>
JS:
var s = Snap(600,600);
var c = s.circle(150, 150, 80).attr({
fill: "none",
stroke: 'red',
strokeWidth: 161,
strokeDasharray: "0 600 600 0",
strokeDashoffset: 1000
});
Snap.animate(0,600, function( value ){
c.attr({ 'strokeDashoffset': value })
},5000 );
更新:
问题:
应该: