首页前端开发CSScss如何实现圆形进度条

css如何实现圆形进度条

时间2023-11-27 11:31:03发布访客分类CSS浏览873
导读:CSS可以实现各种各样的效果,包括圆形进度条。下面我们来介绍如何用CSS实现一个圆形进度条。.progress { position: relative; width: 120px; height: 120px; border-ra...

CSS可以实现各种各样的效果,包括圆形进度条。下面我们来介绍如何用CSS实现一个圆形进度条。

.progress {
      position: relative;
      width: 120px;
      height: 120px;
      border-radius: 50%;
      background-color: #ddd;
}
.progress:after {
      content: '';
      display: block;
      position: absolute;
      top: 0;
      left: 0;
      border-radius: 50%;
      background-color: #f1c40f;
      width: 100%;
      height: 100%;
      transform-origin: center center;
      transform: rotate(-90deg);
}
    

上述代码中,我们用一个div元素作为进度条的容器,设置宽高和border-radius属性使它变成一个圆形。然后,我们用:after伪元素来实现进度条的填充,设置它的宽度为100%(即填充整个容器),高度为100%,并且用border-radius属性让它也变成一个圆形。然后,用transform属性将它顺时针旋转90度,这样它默认就是空的(因为是从正上方开始旋转的)。

接下来我们就需要通过JavaScript来控制进度条的填充了。比如,我们可以用下面的代码实现一个从0到100%的动态进度条:

var progress = document.querySelector('.progress:after');
    var i = 0;
setInterval(function() {
      i++;
      progress.style.transform = 'rotate(' + ((i / 100) * 360 - 90) + 'deg)';
}
    , 50);
    

上述代码中,我们首先用document.querySelector方法找到进度条的:after伪元素。然后,设置一个变量i来记录进度,用setInterval函数每50毫秒让它加1,然后通过计算当前进度对应的旋转角度来设置transform属性,使进度条随着时间动态填充。

至此,我们就完成了一个简单的圆形进度条的实现。当然,要实现更复杂的效果,还需要更复杂的CSS和JavaScript代码。但无论何时,掌握基本原理都是必要的。

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


若转载请注明出处: css如何实现圆形进度条
本文地址: https://pptw.com/jishu/557494.html
css3 grid 响应式 css如何实现垂直水平居中

游客 回复需填写必要信息