<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          SVG實(shí)現(xiàn)環(huán)形進(jìn)度條的原理

          共 994字,需瀏覽 2分鐘

           ·

          2020-11-14 21:29


          之前在項(xiàng)目中遇到一個(gè)環(huán)形進(jìn)度條的需求,要求能實(shí)時(shí)更新進(jìn)度,腦海中瞬間便蹦出css,svg,canvas3中方案,對(duì)于3種方案個(gè)人更偏向于svg,用法簡單,代碼量也很少,同時(shí)也便于實(shí)時(shí)控制。具體效果如下圖:


          代碼非常簡單:

          "150px" height="150px" class="svg">    <circle r="70" cy="75" cx="75" stroke-width="8" stroke="#EAEFF4" stroke-linejoin="round" stroke-linecap="round" fill="none"/>    <circle class="progress" r="70" cy="75" cx="75" stroke-width="8" stroke="#1593FF" stroke-linejoin="round" stroke-linecap="round" fill="none" stroke-dashoffset="0px"  stroke-dasharray="471px" />svg>

          為了便于演示,我們先用css動(dòng)畫控制:

          svg {    transform: rotate(-90deg);}.progress {    animation: rotate 1500ms linear both;}@keyframes rotate {    from {        stroke-dashoffset: 471px;    }    to {        stroke-dashoffset: 0px;    }}

          實(shí)現(xiàn)原理

          實(shí)現(xiàn)原理非常簡單,就是應(yīng)用svg的stroke-dashoffset和stroke-dasharray屬性。
          stroke-dasharray
          官方解釋為可控制用來描邊的點(diǎn)劃線的圖案范式,即定義虛線每段長度即虛線間間隔,數(shù)與數(shù)之間用逗號(hào)或者空白隔開,指定短劃線和缺口的長度。如果提供了奇數(shù)個(gè)值,則這個(gè)值的數(shù)列重復(fù)一次,從而變成偶數(shù)個(gè)值。
          stroke-dashoffset
          標(biāo)識(shí)的是整個(gè)路徑的偏移值。通過控制虛線的間隔與偏移值,便可以行程各種各樣的線條動(dòng)畫,當(dāng)然我們還可以通過js控制,如下:
          let path = document.querySelector('#path');// 可獲取路徑的長度let len = path.getTotalLength();path.style.cssText = `stroke-dasharray:"${number}"`;

          本文完~

          ??愛心三連擊

          1.看到這里了就點(diǎn)個(gè)在看支持下吧,你的點(diǎn)贊在看是我創(chuàng)作的動(dòng)力。

          2.關(guān)注公眾號(hào)程序員成長指北,回復(fù)「1」加入Node進(jìn)階交流群!「在這里有好多 Node 開發(fā)者,會(huì)討論 Node 知識(shí),互相學(xué)習(xí)」!

          3.也可添加微信【ikoala520】,一起成長。


          “在看轉(zhuǎn)發(fā)”是最大的支持

          瀏覽 31
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  日本黄色电影大鸡巴 | 亚洲欧美三级电影 | 婷婷亚洲国产 | 亲子乱AV一区二区 | 女人十八毛片a级毛片 |