前端 圆形进度图_web前端入门到实战:CSS实现圆形进度条

示例图

结构

首先一个父级div设置相对定位,内部含有四个半圆div和一个用于遮罩的小圆div

实现步骤

先写出基本html结构

web前端开发学习Q-q-u-n: 731771211,分享学习的方法和需要注意的小细节,不停更新最新的教程和学习方法(详细的前端项目实战教学视频,PDF)

父级div和content添加样式

.box{

position: relative;

}

.content {

top: 10px;

left: 10px;

width: 100px;

height: 100px;

border-radius: 50%;

position: absolute;

background:red;

z-index: 5;

}

当前效果:

添加第一个背景半圆

.bg1{

position: absolute;

width: 60px;

height: 120px;

border-radius: 120px 0 0 120px;

z-index: 3;

background: sandybrown;

}

添加第二个背景半圆

.bg2{

left: 60px;

position: absolute;

width: 60px;

height: 120px;

border-radius: 0px 120px 120px 0;

z-index: 1;

background: sandybrown;

}

添加第一个进度半圆,这个时候,去页面调整rotate的角度可以看到进度旋转

.pr1 {

position: absolute;

left: 60px;

width: 60px;

height: 120px;

border-radius: 0px 120px 120px 0px;

z-index: 2;

background: forestgreen;

transform: rotate(-180deg);

transform-origin: 0px 60px;

}

添加第二个半圆,第一个半圆只能旋转到50%,所以需要第二个半圆来走完剩下的一半

.pr2 {

position: absolute;

left: 60px;

border-radius: 0px 120px 120px 0px;

z-index: 4;

background: forestgreen;

transform: rotate(-180deg);

transform-origin: 0px 60px;

}

添加动画函数,在分别把动画函数添加到.pr1和.pr2中,在实际需求中可以用js控制连个进度半圆的旋转角度

.pr1 {

...

animation: pr1A 5s infinite linear forwards;

}

.pr2 {

...

animation: pr2A 5s infinite linear forwards;

}

@keyframes pr1A {

0% {

transform: rotate(-180deg);

}

50% {

transform: rotate(0deg);

}

100% {

transform: rotate(0deg);

}

}

@keyframes pr2A {

0% {

transform: rotate(-180deg);

}

100%{

width: 60px;

height: 120px;

transform: rotate(180deg);

}

}

web前端开发学习Q-q-u-n: 731771211,分享学习的方法和需要注意的小细节,不停更新最新的教程和学习方法(详细的前端项目实战教学视频,PDF)

以上完成

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值