css如何实现圆形进度条

css实现圆形进度条的方法:首先画一个方形;然后在方形中画两个等大均分方形的矩形;最后使用css3的“transform:rotate”属性将叠加环形根据实际百分比换算成实际的旋转角度即可。

css如何实现圆形进度条

css/editerView/ck_htmledit_views-b5506197d8.css”/>

推荐:《css视频教程》

进度条效果如下:
这里写图片描述

整圆的效果处理会简单些,不完整环实现起来细节多点。下边是实现逻辑和过程。

进度条组成:

立即学习“前端免费学习笔记(深入)”;

环形:两种颜色进度条,当余量少于50%时进度条颜色由绿色变为黄色。进度条结构由两个叠加环形组成;上叠加环形展示剩余量,深色;下叠加环形展示100%总量,浅色。

样式实现:

1:画一个方形,如图中阴影部分所示:
这里写图片描述
2:方形中画两个等大均分方形的矩形,(注意每个矩形一定要设置:overflow:hidden)如图中阴影部分所示:
这里写图片描述这里写图片描述

3:进度条由两个叠加环形组成,所以第一步的方形中需要画四个等大的矩形用来展示不同部分的环形。

4:每个矩形中画一个和父级方形等大的方形,用来展示环形,左半矩形中的环形只设置上边框和左边框;右半矩形中的环形只设置上边框和右边框,如图中阴影所示:

这里写图片描述

5:实现进度条的动态百分比进度,使用css3的transform:rotate将上叠加环形根据实际百分比换算成实际的旋转角度来实现。
当剩余量大于50%时左侧上叠加环形旋转角度不用变,只有计算右测上叠加环形旋转角度即可。
当剩余量小于百分之50%时,左侧上叠加环形旋转时,就会将左半环形展示为完整的半环,此时就需要一个用来遮挡左侧超出进度范围环形部分的左侧环;如下图所示:
这里写图片描述

html代码如下:

    

        

        

        

        

        

        

        

        //percent小于50时需要使用遮罩进行遮挡超出环形范围部分    

        

        

        

剩余

        

'+circleData.percent+'%

    

登录后复制

css代码:

.progress_wrap{                   position: relative;                   margin:0 0 0 .14rem;                   width:.92rem;height:.92rem;                   //little和more用来展示黄色和绿色的效果                   &.little{                       .under{                                                      .rightcircle,.leftcircle{                               border-top:$progress_border_under_little;                           }                           .rightcircle{                               border-right:$progress_border_under_little;                           }                           .leftcircle{                               border-left:$progress_border_under_little;                           }                       }                       .up{                           .rightcircle,.leftcircle{                               border-top:$progress_border_up_little;                           }                           .rightcircle{                               border-right:$progress_border_up_little;                           }                           .leftcircle{                               border-left:$progress_border_up_little;                           }                       }                       //用遮挡实现左侧剩余百分比,遮住超出环形范围部分;核心是使用同心圆进行边框进行遮挡                       .up_left_cover{                           width:.47rem;height:.92rem;                           .leftcircle{                               top:-.02rem;                               width:.74rem;height:.74rem;                               border:.11rem solid transparent;                               border-top:$progress_border_up_left_cover_little;                               border-left:$progress_border_up_left_cover_little;                               //实际值为195deg,被遮挡环颜色值深有光晕,需要将角度进行微调(-191deg)进行完全遮挡                               -webkit-transform:rotate(-191deg);                           }                       }                                          }                   &.more{                       .under{                           .rightcircle,.leftcircle{                               border-top:$progress_border_under;                           }                           .rightcircle{                               border-right:$progress_border_under;                           }                           .leftcircle{                               border-left:$progress_border_under;                           }                       }                       .up{                           .rightcircle,.leftcircle{                               border-top:$progress_border_up;                           }                           .rightcircle{                               border-right:$progress_border_up;                           }                           .leftcircle{                               border-left:$progress_border_up;                           }                       }                   }                   .right,.left{                       position: absolute;top:0;overflow:hidden;                       width:.46rem;height:.92rem;                       .circleProgress{                           position: absolute; top:0;                           width: .78rem; height: .78rem;                           border:.07rem solid transparent; border-radius: 50%;                                                  }                       .rightcircle{                           right:0;                           -webkit-transform: rotate(15deg);                       }                       .leftcircle{                           left:0;                           -webkit-transform: rotate(-15deg);                       }                                          }                   .right{                       right:0;                   }                   .left{                       left:0;                   }                   .num{                       position: absolute;left:50%;top:50%;                       width:.5rem;                       transform:translate(-50%,-50%);                       font-size:.12rem;color:$public_auxiliary_col;text-align:center;line-height:.26rem;                   }               }

登录后复制

js代码:

function giftCircleProgressFn(per){            var circleData = {};            var percent = parseInt(per);                        //领取进度环形颜色className            var halfClassName = percent50%:左半圆占比100%,右半圆直接使用百分比计算所占部分即可            //注意:在半圆中计算百分比时,要将百分比乘以2。            if(percent

环形旋转角度换算需要根据不同需求进行微调即可。

如有什么好的建议,欢迎多多交流呀。

登录后复制

以上就是css如何实现圆形进度条的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2883815.html

(0)
上一篇 2025年3月10日 20:22:49
下一篇 2025年3月6日 10:22:46

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • css怎么设置不能选中文字

    css设置不能选中文字的方法:可以利用user-select属性来进行设置,如【user-select:none】。user-select属性是css3中新增的,用来控制内容的可选择性。 属性介绍: user-select是在css3 UI…

    2025年3月10日
    200
  • css怎么去掉字体粗体样式

    css去掉字体粗体样式的方法:可以利用font-weight属性来实现,如【font-weight:normal;】。font-weight属性用于设置文本的粗细,normal用于定义标准的字符。 本教程操作环境:windows10系统、c…

    2025年3月10日
    200
  • css属性为什么要加前缀

    css属性加前缀的原因:虽然浏览器厂商以前就一直在实施css3,但它还并未成为真正的标准。因此当一些css3样式语法存在波动时,它们就需要提供针对浏览器的前缀。 原因分析: 虽然浏览器厂商以前就一直在实施CSS3,但它还未成为真正的标准。为…

    2025年3月10日
    200
  • css外链式和导入式的区别是什么

    css外链式和导入式的区别是:外链式是先将css布局文件加载到网页文件中,而导入式是先加载网页文件,然后再加载布局文件。使用导入式可以避免过多的网页文件指向一个css布局文件。 区别分析如下: (学习视频推荐:css视频教程) 外链式样式 …

    2025年3月10日
    200
  • css如何设置字体下划线

    css设置字体下划线的方法:可以利用text-decoration属性来进行设置,如【text-decoration: underline;】。text-decoration属性用于规定添加到文本的修饰、下划线、上划线、删除线等。 属性介绍…

    2025年3月10日
    200
  • css如何设置黑体样式

    css设置黑体样式的方法:可以利用font-family属性来进行设置,如【font-family: 黑体;】。font-family属性用于指定一个元素的字体。 属性介绍: font – family属性指定一个元素的字体。 …

    2025年3月10日
    200
  • css中的display是什么意思

    css中的display是用于规定应该生成的框的类型的属性。对于html等文档类型,必须谨慎使用display属性,否则可能会违反html中已经定义的显示层次结构。 属性介绍: display 属性规定元素应该生成的框的类型。 对于 HTM…

    2025年3月10日
    200
  • css怎么设置段落缩进

    css设置段落缩进的方法:可以利用text-indent属性来进行设置,如【text-indent:36px;】。text-indent属性用于规定文本块中首行文本的缩进。 相关属性: text-indent 属性规定文本块中首行文本的缩进…

    2025年3月10日
    200
  • 使用css有什么优势

    使用css的优势有:1、内容与表现分离;2、网页的表现统一,容易修改;3、丰富的样式,使页面布局更加灵活;4、减少网页的代码量,增加网页的浏览速度;5、有利于网页被搜索引擎收录。 优势: (学习视频分享:css视频教程) 1、内容与表现分离…

    2025年3月10日
    200
  • css怎么设置超链接字体加粗效果

    css设置超链接字体加粗效果的方法:1、创建一个a标签;2、在style标签中,使用标签选择器选择所有的超链接;3、给a标签设置font-weight样式即可,如【a{font-weight: bold;}】。 相关属性: font-wei…

    2025年3月10日
    200

发表回复

登录后才能评论