进度条是我们在Web中经常看到的一种效果,常见的进度条有水平横条和径向圆形的进度条。今天我们来看看怎么使用SVG来实现进度条的效果。使用SVG可以很容易的实现,也易于理解,最主要是使用SVG实现的进度条具有良好的跨浏览器,并且能根据浏览器屏幕尺寸很好的显示。
基础
在具体制作之前,有一些简单的概念要了解一下,这是制作进度条的一些基础。
水平进度条,是一条直线,使用SVG的
<line>
元素可以绘制圆形进度条,是一个环形,使用SVG的
<circle>
元素可以绘制通过
fill:none
设置线条无填充色,使用stroke-width
来设置进度条的粗细
使用stroke-width
设置进度条粗细,水平进度条相对而言较主简单,直接设置就能指定进度条的高度,对于其长度通过(x1,y1)
和(x2,y2)
来确定。对于圆形进度条,同样需要使用fill:none
让圆形不填充任何颜色,stroke-width
设置圆形的粗细,只是其值是圆周长的十分之一。
通过stroke-width
和圆的周长,我们可以计算出圆形的半径。比如我们圆形的外周长是120
,同时stroke-width
的值是12
。这样我们就可以计算出圆形半径:
(120 / 2) - (12 / 2) = 54
SVG代码很简单:
<svg width="200" height="200" viewBox="0 0 200 200"> <line x1="10" y1="10" x2="110" y2="10" fill="none" stroke-width="12" stroke="#666" /> <circle cx="60" cy="80" r="54" fill="none" stroke="#666" stroke-width="12" />
</svg>