小编给大家分享一下css怎样绘制扇形进度条,希望大家阅读完这篇文章之后都有所收获、下面让我们一起去探讨吧!
前言:
本文为大家分享了利用纯css绘制圆环进度条的方法,在使用本文中的方法时,建议先了解圆心角,弧度制,三角函数等知识。
为实现如下效果呕心沥血:
当然你可以拥抱Svg……在此分享如何纯Css打造圆环进度条,只需三步!
此物乃2 + 1夹心饼干,蓝绿色部分为果酱。显而易见饼干为两个削成了圆形的div,我们重点演示果酱是怎么制作的:
如图所示,大扇形由6个小扇形构成,每一小扇形占整个圆饼的1/15,大扇形占整个圆饼的6/15。我们只需构造一个扇形单元,将其复制6份后旋转相应角度连接至一起即可。
如何构造扇形?用三角形伪装……
三角形的宽高如何计算?假定圆半径半径为100 px,美元等分数计数为15美元。则小扇形的圆心角为360度/15日三角形的高为100 px,宽为2 * 100 px * tan(360度/15/2)。其中360度/15/2转化弧度制为π/15(π==360度/2)。
span { ,,,宽度:,0; ,,,身高:,0; ,,,边界:,radius 美元;solid 透明; ,,,borderWidth:美元,谭(π(),/,美元数),*,美元半径; ,,,border-left-width:, borderWidth美元; ,,,border-right-width:, borderWidth美元; }
数学欠佳的同学请自行科普…
对于美元计数为1或2的情况需特殊处理,因为棕褐色(PI)及棕褐色(π/2)为无穷,值不了解的同学请研究正切函数图像:
相关代码(其直径=2 *美元中半径为圆直径):
span { ,,,@if count 美元;==,1,{ ,,,,,,,宽度:,美元直径; ,,,,,,,:高度,直径美元; ,,,},@else if count 美元;==,2,{ ,,,,,,,宽度:,美元直径; ,,,,,,,身高:,美元半径; ,,,},{@else ,,,,,,,宽度:,0; ,,,,,,,,身高:0; ,,,,,,,边界:,radius 美元;solid 透明; ,,,,,,,borderWidth:美元,谭(π(),/,美元数),*,美元半径; ,,,,,,,border-left-width:, borderWidth美元; ,,,,,,,border-right-width:, borderWidth美元; ,,,} }
最后,复制并逐一旋转扇形单元:
@for index 美元;得到0,用count 美元;{ ,,,跨度:nth-child (# {index 美元;+,1}),{ ,,,,,,,变换:美元,翻译(-50%,0),旋转(360 deg /, count 美元/,2,+,360 deg *, index 美元/,美元数); ,,,,,,,产地:美元,如果(count 美元;==,,,,,中心); ,,,,,,,-webkit-transform:,美元变换; ,,,,,,,,,,,,,,,:转换,转换美元; ,,,,,,,-webkit-transform-origin:,美元的起源; ,,,,,,,,,,,,,,,transform-origin:,美元的起源; ,,,} }
果酱制作完毕,其它点缀请自行添加喽……本例完整代码在此。
2017/11/14续更
由于本例引入了三角函数等数学运算,使用Sass预编译。未安装Sass的同学可下载经编译的源码开启部门。html查看效果。
安装Sass请参考sunmengyuan.github。io/花园/2017…文章末尾的安装教程。
本例调试方法:
cd 部门 sass ——watch  style.scss: style.css ——debug-info
看完了这篇文章,相信你对“css怎样绘制扇形进度条”有了一定的了解,如果想了解更多相关知识,欢迎关注行业资讯频道,感谢各位的阅读!