HTML5-svg圆形饼状图进度条实现原理

时间:2021-09-23 14:41:23
 <svg width="440" height="440" viewbox="0 0 440 440">
<circle cx="220" cy="220" r="220" fill="#ddd"></circle>
<circle cx="220" cy="220" r="110" stroke-width="220" stroke="#00A5E0" transform="matrix(0,-1,1,0,0,440)" fill="#ddd"> </circle>
</svg>

记住如下几点:

1.第一个circle是总面积区域,第二个circle 是已加载的面积区域

2.第二个circle 的半径r 是第一个circle的二分之一,切第二个circle的线条宽度等于第一个circle的半径。

3.两个circle的fill填充颜色要相同

4.第二个circle的线条颜色 表示已加载的区域的颜色。

5.利用事件监听加载进度,修改第二个circle的stroke-dasharray属性,则可以看到一个饼状图慢慢变圆形的动画效果。stroke-dasharray的第第一个参数和二个参数的和 保持不变,为整个圆的面积。

6.事件监听效果,请参考这位大神的demo。

http://www.zhangxinxu.com/study/201507/svg-circle-loading.html