html svg生成環(huán)形進度條的實現(xiàn)方法
發(fā)布時間:2019-09-23 15:41:36 作者:樊一
我要評論

這篇文章主要介紹了html svg生成環(huán)形進度條的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
之前在項目中遇到一個環(huán)形進度條的需求,要求能實時更新進度,腦海中瞬間便蹦出css,svg,canvas3中方案,對于3種方案個人更偏向于svg,用法簡單,代碼量也很少,同時也便于實時控制。具體效果如下圖:
代碼非常簡單:
<svg width="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; } }
實現(xiàn)原理
實現(xiàn)原理非常簡單,就是應(yīng)用svg的stroke-dashoffset和stroke-dasharray屬性。
stroke-dasharray
官方解釋為可控制用來描邊的點劃線的圖案范式,即定義虛線每段長度即虛線間間隔,數(shù)與數(shù)之間用逗號或者空白隔開,指定短劃線和缺口的長度。如果提供了奇數(shù)個值,則這個值的數(shù)列重復(fù)一次,從而變成偶數(shù)個值。
stroke-dashoffset
標識的是整個路徑的偏移值。
通過控制虛線的間隔與偏移值,便可以行程各種各樣的線條動畫,當(dāng)然我們還可以通過js控制,如下:
let path = document.querySelector('#path'); // 可獲取路徑的長度 let len = path.getTotalLength(); path.style.cssText = `stroke-dasharray:"${number}"`;
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
- 這篇文章主要介紹了HTML5超炫酷粒子效果的進度條的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來2019-08-23
HTML5觸摸事件實現(xiàn)移動端簡易進度條的實現(xiàn)方法
這篇文章主要介紹了HTML5觸摸事件實現(xiàn)移動端簡易進度條的實現(xiàn)方法的相關(guān)資料,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-05-04- 本文給大家介紹了HTML5實現(xiàn)自帶進度條和滑塊滑桿效果,運用progress標簽,設(shè)置好min和max數(shù)值就好,可以用value獲取其中的進度值。具體實現(xiàn)代碼大家參考下本文2018-04-17
- 這篇文章主要介紹了網(wǎng)頁加載進度條,文中解釋了屬性和應(yīng)用,具體操作步驟大家可查看下文的詳細講解,感興趣的小伙伴們可以參考一下。2017-08-17
- 這篇文章主要介紹了HTML頁面縮小后顯示滾動條的示例代碼,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-02-26