<circle-progress :id="1" :width="200" :radius="20" :progress="70" :delay="200" :duration="1000" :barColor="#F2AE57" :backgroundColor="#FFE8CC" :isAnimation="true" :timeFunction="cubic-bezier(0.99, 0.01, 0.22, 0.94)" >
| 參數名 | 值類型 | 是否必填 | 參數做用 | 默認值 |
| :------: | :------: | :------: | :------: | :------: |
| id | String | 選填 | 組件的id,屢次定義設置不一樣的值 | 1 |
| width | Number | 必填 | 設置圓總體的大小,單位爲px | 無 |
| radius | Number | 必填 | 設置進度條寬度,單位爲px | 無 |
| progress | Number | 必填 | 設置進度百分比 | 無 |
| barColor | String | 必填 | 設置進度條顏色 | 無 |
| backgroundColor | String | 必填 | 設置進度條背景顏色 | 無 |
| delay | Number | 選填 | 延遲多久執行,單位爲ms | 20 |
| duration | Number | 選填 | 動畫總體時長,單位爲ms | 1000 |
| timeFunction | String | 選填 | 動畫緩動算法 | cubic-bezier(0.99, 0.01, 0.22, 0.94) |
| isAnimation | Boolean | 選填 | 是否以動畫的方式呈現 | true |css
fill:填充的圖案或者顏色,因爲這裏直接使用畫筆描繪圖形,因此用不上,爲了覆蓋其默認值black,設置爲none前端
<circle ref="$bar" :r="(width-radius)/2" :cy="width/2" :cx="width/2" :stroke="barColor" :stroke-width="radius" :stroke-linecap="isRound ? 'round' : 'square'" :stroke-dasharray="(width-radius)*3.14" :stroke-dashoffset="isAnimation ? (width-radius) * 3.14 : (width - radius) * 3.14 * (100 - progress) / 100" fill="none" />
stroke-dashoffset除了在節點屬性中設置,也能夠經過css樣式設置vue
@keyframes circle_progress_keyframes_name_1 { from { stroke-dashoffset: 565.2px; } to { stroke-dashoffset: 169.56px; } } .circle_progress_bar1 { animation: circle_progress_keyframes_name_1 1000ms 20ms cubic-bezier(0.99, 0.01, 0.22, 0.94) forwards; }
這波組件較爲簡單,貌似沒什麼可說的了,就這樣吧css3