如何利用CSS3实现圆形进度条

2025-10-22 21:46:41

1、50%以内(或者说180度以内)

上层遮盖层的颜色为进度条未占有时的背景色。如下图所示:红色边框部分为上层遮盖层。

如何利用CSS3实现圆形进度条

2、50%以上

上层遮盖层的颜色为进度条占有时的背景色(即:进度条前景色)。如下图所示:红色边框部分为上层遮盖层。这时上层遮盖层和原有的底层背景组成完整的进度条。

如何利用CSS3实现圆形进度条

3、关键技术

1.      圆角

Border-radius:50%

2.      裁剪

Clip:rect(上,右,下,左)利用裁剪是为了方便同心旋转。

3.      旋转遮盖

transform:rotate(30deg);旋转遮

如何利用CSS3实现圆形进度条

如何利用CSS3实现圆形进度条

如何利用CSS3实现圆形进度条

如何利用CSS3实现圆形进度条

4、<!DOCTYPE html>

<html>

<head>

<style>

div

{

position:absolute;

width:200px;

height:200px;

border-radius:50%;

}

/* 圆底 */

#circle

{

position:relative;

border:1px solid black;

background-color:yellow;

}

/* 上半部分 */

#t{

border:3px solid #F00;

background-color:white;

clip:rect(0px,auto,100px,auto);

transform:rotate(30deg);

background-color:#ccc;

}

/* 下半部分 */

#b{

border:3px solid #00F;

background-color:white;

clip:rect(100px,auto,auto,auto);

background-color:#ccc;

}

/* 中心白 */

#p{

         width:150px;

         height:150px;

         line-height:150px;

         left:25px;

         top:25px;

         text-align: center;

         border-radius:50%;

  background-color:#FFFFFF;

}

</style>

<script>

function setPercent(v){

if(v<0.5){

 document.getElementById("t").style.backgroundColor="#ccc";

 document.getElementById("t").style.transform="rotate("+(360*v)+"deg)";

}else{

 document.getElementById("t").style.backgroundColor="yellow";

 document.getElementById("t").style.transform="rotate("+(360*(v-0.5))+"deg)";

}

 document.getElementById("p").innerHTML=(v*100)+"%";

}

</script>

</head>

<body>

<div id="circle">

<div id="b"></div>

<div id="t"></div>

<div id="p"></div>

</div>

<input style="margin-left:50px;" type="button" value="30%" onclick="setPercent(0.3)"/>

<input type="button" value="70%" onclick="setPercent(0.7)"/>

</body>

</html>

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢