<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)度條的原理

          共 849字,需瀏覽 2分鐘

           ·

          2020-10-29 09:20

          之前在項(xiàng)目中遇到一個環(huán)形進(jìn)度條的需求,要求能實(shí)時更新進(jìn)度,腦海中瞬間便蹦出css,svg,canvas3中方案,對于3種方案個人更偏向于svg,用法簡單,代碼量也很少,同時也便于實(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動畫控制:

          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ù)之間用逗號或者空白隔開,指定短劃線和缺口的長度。如果提供了奇數(shù)個值,則這個值的數(shù)列重復(fù)一次,從而變成偶數(shù)個值。
          stroke-dashoffset
          標(biāo)識的是整個路徑的偏移值。通過控制虛線的間隔與偏移值,便可以行程各種各樣的線條動畫,當(dāng)然我們還可以通過js控制,如下:
          let path = document.querySelector('#path');// 可獲取路徑的長度let len = path.getTotalLength();path.style.cssText = `stroke-dasharray:"${number}"`;

          本文完~

          瀏覽 53
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          <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>
                  天天操中文字幕 | 国产日韩在线一级 | 国产无码免费高清 | 亚洲少妇xxxx | 亚洲视频小说 |