[CSS100] Day 10 Watch
Watch Demo
See the Pen 100DaysCss #10 by Cathy (@smile25896) on CodePen.
繼上一次[CSS100] Day 05 Statistic用過 SVG 之後,這次不停繞圈圈的圓也要用到 SVG。另外繞圈圈的效果還新學到了stroke-dasharray
和stroke-dashoffset
這兩個屬性。
學習重點
- 用 svg 製作一個空心的圓
- 製作繞圈的效果:
stroke-dasharray
和stroke-dashoffset
用 svg 製作一個空心的圓
html 部分,使用了 svg 中的circle
,cx
和cy
分別代表圓心 x 軸與 y 軸的位置,r
則代表了圓的半徑。
因此可以透過下面的 html,畫出一個圓
1 | <svg class="spinner" viewBox="0 0 202 202" xlmns="https://www.w3.org/2000/svg"> |
接著要透過 css 將這個圓調整成空心的圓:
1 | circle { |
詳細的 SVG 教學,我覺得可以參考ooxx 的教學介紹得相當詳盡。
製作繞圈的效果(stroke-dasharray 和 stroke-dashoffset)
stroke-dasharray
是用來畫虛線的屬性,可以讓stroke
一段實線一段空白一段實線一段空白的效果。
直接用 MDN 上的範例來說明:
1 | <svg viewBox="0 0 30 10" xmlns="http://www.w3.org/2000/svg"> |
呈現的效果:
stroke-dashoffset
可以將用stroke-dasharray
畫出的虛線向後推移。
製作繞圈的效果
認識完上面兩個屬性,只要將stroke-dasharray
的長度設超過圓的周長,再控制stroke-dashoffset
將他推移,就能完成繞圈的效果。