首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >用css3实现圆形进度条

用css3实现圆形进度条

原创
作者头像
艳艳代码杂货店
修改2021-11-01 12:33:00
修改2021-11-01 12:33:00
1.4K00
代码可运行
举报
运行总次数:0
代码可运行

使用css3的圆角、旋转、剪切属性实现圆形进度条,原理不难,两次剪切加一次旋转。 进度条分左右两边,50%一下操作右边的就行,超过50%操作左边的 样式随便写的,代码如下:

html部分:

代码语言:javascript
代码运行次数:0
运行
复制
<div class="div1">
 <div class="right-div2">
     <div class="right-div3"></div>
    </div>
    <div class="left-div2">
     <div class="left-div3"></div>
    </div>
</div>
<div class="div4"><span>0</span>%</div>

最内层的div3裁剪一半然后旋转需要的角度, 父级div2裁剪一半,此时已经裁剪出来了那个扇形了 最后在上面加个圆形遮盖层

css代码:

代码语言:javascript
代码运行次数:0
运行
复制
.div1, .right-div2, .right-div3, .left-div2, .left-div3 { width:200px; height:200px; border-radius:50%;}
.div1 { background:#ccc; position:relative;}
.right-div2, .right-div3, .left-div2, .left-div3 { position:absolute; left:0; top:0;}
.right-div2, .right-div3 { clip:rect(0,auto,auto,100px);}
.left-div2, .left-div3 { clip:rect(0,100px,auto,auto);}
.right-div3 { background:#f00; transform:rotate(-180deg);}
.left-div3 { background:#f00; transform:rotate(-180deg);}
.div4 { position:absolute; top:25px; left:25px; width:150px; height:150px; line-height:150px; text-align:center; border-radius:50%; background:#fff;}

js代码:

代码语言:javascript
代码运行次数:0
运行
复制
$(function(){
 var a = 0;
 var b = 0;
 var timer = setInterval(function(){
  a++;
  if(a<=50){
    //-180deg是0%,转换一下
    b = a*3.6-180;
    $('.right-div3').css('transform','rotate(' + b + 'deg)');
  
   }else if(a>50&&a<=100){
    //超过50%,需要修改左边的,右边0deg是50%
    $('.right-div3').css('transform','rotate(0)');
 
    //左边0deg是100%,转换一下
    b = a*3.6-360;
    $('.left-div3').css('transform','rotate(' + b + 'deg)');
   }else{
    clearInterval(timer);
    return;
   }
   $('.div4 span').html(a);
 },200);
});

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档