首页前端开发CSScss绘制扇形进度条

css绘制扇形进度条

时间2024-01-27 19:11:02发布访客分类CSS浏览243
导读:收集整理的这篇文章主要介绍了css绘制扇形进度条,觉得挺不错的,现在分享给大家,也给大家做个参考。前言:本文为大家分享了利用纯css绘制圆环进度条的方法,在使用本文中的方法时,建议先了解圆心角、弧度制、三角函数等知识。为实现如下效果呕心沥血...
收集整理的这篇文章主要介绍了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 sectorsass --watch style.scss:style.css --debug-info

作者:呆恋小喵

我的后花园:sunmengyuan.github.io/garden/

我的 github:github.COM/sunmengyuan

原文链接:sunmengyuan.github.io/garden/2017…

相关推荐:css教程

以上就是css绘制扇形进度条的详细内容,更多请关注其它相关文章!

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!

上一篇: 用css怎么添加小图标下一篇:css li怎么水平居中对齐猜你在找的CSS相关文章 css怎么控制按钮不可用2022-05-17css3中transform属性实现的4种功能2022-04-13纯CSS3实现div按照顺序出入效果2022-04-13CSS实现隐藏搜索框功能(动画正反向序列)2022-04-13使用CSS3实现按钮悬停闪烁动态特效代码2022-04-13CSS3 Tab动画实例之背景切换动态效果2022-04-13CSS实现两列布局的N种方法2022-04-13CSS 实现Chrome标签栏的技巧2022-04-13css实现两栏布局左侧固定宽右侧自适应的多种方法2022-04-13从QQtabBar看css命名规范BEM的详细介绍2022-04-13 其他相关热搜词更多phpjavapython程序员

若转载请注明出处: css绘制扇形进度条
本文地址: https://pptw.com/jishu/588603.html
css 怎么去掉按钮样式 浅谈css布局中负margin的使用方法

游客 回复需填写必要信息