美文网首页
css 圆形进度条

css 圆形进度条

作者: 江湖小盛 | 来源:发表于2021-08-07 14:50 被阅读0次

结构

 <!-- 进度 -->
   <div class="circle_process">
        <div class="wrapper right">
            <div class="circle rightcircle"></div>
        </div>
        <div class="wrapper left">
            <div class="circle leftcircle"></div>
        </div>
  </div>

样式

.circle_process {
        position: relative;
        width: 0.9rem;
        height: 0.9rem;
    }

    .circle_process .wrapper {
        width: 50%;
        height: 100%;
        position: absolute;
        top: 0;
        overflow: hidden;
    }

    .circle_process .right {
        right: 0;
    }

    .circle_process .left {
        left: 0;
    }

    .circle_process .circle {
        width: 0.9rem;
        height: 0.9rem;
        border: 0.06rem solid transparent;
        border-radius: 50%;
        position: absolute;
        top: 0;
        transform: rotate(-135deg);
        box-sizing: border-box;
    }

    .circle_process .rightcircle {
        border-top: 0.06rem solid #48b0ef;
        border-right: 0.06rem solid #48b0ef;
        right: 0;
        /*animation: circle_right 5s linear infinite;*/
    }

    .circle_process .leftcircle {
        border-bottom: 0.06rem solid #48b0ef;
        border-left: 0.06rem solid #48b0ef;
        left: 0;
        /*animation: circle_left 5s linear infinite;*/
    }

    @keyframes circle_right {
      0% {
          transform: rotate(-135deg);
      }
  
      50%,
      100% {
          transform: rotate(45deg);
      }
    }

    @keyframes circle_left {
      0%,
      50% {
          transform: rotate(-135deg);
      }
  
      100% {
          transform: rotate(45deg);
      }
    }

js

 function progressFn(perNum) {
      // perNum 为进度值
      var percent = Math.ceil((perNum / 100) * 100);
      var deg1 = ((45 + 135) * percent) / 50 - 135;
      var deg2 = ((45 + 135) * (percent - 50)) / 50 - 135;
      if(percent >= 50) {
        $('.leftcircle').css({
          'transform': 'rotate('+ deg2 + 'deg' +')'
        })
        $('.rightcircle').css({
          'transform': 'rotate('+ 45 + 'deg' +')'
        });
      } else {
        $('.rightcircle').css({
          'transform': 'rotate('+ deg1 + 'deg' +')'
        })
      }
    }
    progressFn(50);
1.png 2.png

相关文章

网友评论

      本文标题:css 圆形进度条

      本文链接:https://www.haomeiwen.com/subject/djxgvltx.html