小編給大家分享一下css怎樣繪制扇形進度條,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!
為瓊中黎族等地區用戶提供了全套網頁設計制作服務,及瓊中黎族網站建設行業解決方案。主營業務為網站制作、成都網站制作、瓊中黎族網站設計,以傳統方式定制建設網站,并提供域名空間備案等一條龍服務,秉承以專業、用心的態度為用戶提供真誠的服務。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!前言:
本文為大家分享了利用純css繪制圓環進度條的方法,在使用本文中的方法時,建議先了解圓心角、弧度制、三角函數等知識。
為實現如下效果嘔心瀝血:
當然你可以擁抱 Svg...在此分享如何純 Css 打造圓環進度條,只需三步!
此物乃 2 + 1 夾心餅干,藍綠色部分為果醬。顯而易見餅干為兩個削成了圓形的 div,我們重點演示果醬是怎么制作的:
如圖所示,大扇形由 6 個小扇形構成,每一小扇形占整個圓餅的 1/15,大扇形占整個圓餅的 6/15。我們只需構造一個扇形單元,將其復制 6 份后旋轉相應角度連接至一起即可。
如何構造扇形?用三角形偽裝...
三角形的寬高如何計算?假定圓半徑 $radius 為 100px,等分數 $count 為 15。則小扇形的圓心角為 360deg / 15,三角形的高為 100px,寬為 2 * 100px * tan(360deg / 15 / 2)。其中 360deg / 15 / 2 轉化弧度制為 PI / 15(PI == 360deg / 2)。
span { width: 0; height: 0; border: $radius solid transparent; $borderWidth: tan(pi() / $count) * $radius; border-left-width: $borderWidth; border-right-width: $borderWidth; }
數學欠佳的同學請自行科普...
對于 $count 為 1 或 2 的情況需特殊處理,因為 tan(PI) 及 tan(PI / 2) 為無窮值,不了解的同學請研究正切函數圖像:
相關代碼(其中 $diameter = 2 * $radius 為圓直徑):
span { @if $count == 1 { width: $diameter; height: $diameter; } @else if $count == 2 { width: $diameter; height: $radius; } @else { width: 0; height: 0; border: $radius solid transparent; $borderWidth: tan(pi() / $count) * $radius; border-left-width: $borderWidth; border-right-width: $borderWidth; } }
最后,復制并逐一旋轉扇形單元:
@for $index from 0 to $count { span:nth-child(#{$index + 1}) { $transform: translate(-50%, 0) rotate(360deg / $count / 2 + 360deg * $index / $count); $origin: if($count == 2, bottom, center); -webkit-transform: $transform; transform: $transform; -webkit-transform-origin: $origin; transform-origin: $origin; } }
果醬制作完畢,其它點綴請自行添加嘍...本例完整代碼在此。
2017/11/14 續更
由于本例引入了三角函數等數學運算,使用 Sass 預編譯。未安裝 Sass 的同學可下載經編譯的 源碼 開啟 sector.html 查看效果。
安裝 Sass 請參考 sunmengyuan.github.io/garden/2017… 文章末尾的安裝教程。
本例調試方法:
cd sector sass --watch style.scss:style.css --debug-info
看完了這篇文章,相信你對“css怎樣繪制扇形進度條”有了一定的了解,如果想了解更多相關知識,歡迎關注創新互聯行業資訊頻道,感謝各位的閱讀!
本文名稱:css怎樣繪制扇形進度條-創新互聯
本文路徑:http://vcdvsql.cn/article4/ppcie.html
成都網站建設公司_創新互聯,為您提供微信公眾號、外貿建站、ChatGPT、網站改版、響應式網站、云服務器
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯