您好,欢迎访问一九零五行业门户网

css怎么实现环形循环进度条

css实现环形循环进度条的方法:1、创建一个最外层的父级圆环;2、通过“clip-path”画出两个半圆,并绝对定位覆盖在父级圆环;3、小于50时,通过旋转右半圆,慢慢透露出父级圆环的颜色;4、大于50时,设置右半圆旋转度数为0,修改其border颜色来实现前50的效果,其次再旋转左侧半圆即可达到效果。
本教程操作环境:windows10系统、css3版、dell g3电脑
css怎么实现环形循环进度条?
css实现圆环进度条一、静态进度条首先,我们先看一个静态进度条
第一步当然是先实现一个最外层的父级圆环。
其次是通过 clip-path画出两个半圆,并绝对定位覆盖在父级圆环。
小于50的时候,我们只需要通过旋转右半圆,慢慢透露出父级圆环的颜色,即可达到效果。
大于50的时候,我们先按照流程走前面50,再设置右半圆旋转度数为0,修改其border颜色来实现前50的效果,其次再旋转左侧半圆即可达到效果。
<template>    <div class="circle">        <div class="circle_left ab" :style="renderleftrate(85)"></div>        <div class="circle_right ab" :style="renderrightrate(85)"></div>        <div class="circle_text">            <span class="name">成功率</span>            <span class="value">85%</span>        </div>    </div></template><script lang="ts">export default {    name: 'circleprogress',    setup() {        const renderrightrate = (rate: number) => {            if (rate < 50) { return 'transform: rotate(' + 3.6 * rate + 'deg);'; } else { return 'transform: rotate(0);border-color: #54c4fd;'; } }; const renderleftrate = (rate: number) => {            if (rate >= 50) {                return 'transform: rotate(' + 3.6 * (rate - 50) + 'deg);';            }        };        return {            renderleftrate,            renderrightrate,        };    },};</script><style lang="scss">.circle {    width: 80px;    height: 80px;    position: relative;    border-radius: 50%;    left: 200px;    top: 50px;    box-shadow: inset 0 0 0 5px #54c4fd;    .ab {        position: absolute;        left: 0;        right: 0;        top: 0;        bottom: 0;        margin: auto;    }    &_left {        border: 5px solid #546063;        border-radius: 50%;        clip: rect(0, 40px, 80px, 0);    }    &_right {        border: 5px solid #546063;        border-radius: 50%;        clip: rect(0, 80px, 80px, 40px);    }    &_text {        height: 100%;        display: flex;        flex-direction: column;        justify-content: center;        align-items: center;        color: #fff;        .name {            margin-bottom: 4px;        }    }}</style>
效果如下图:
二、动态进度条动态的css其实和静态的是一样的。
该例子是写的固定的进度,你们也可以根据自己的需求变换。
<template>    <div class="circle">        <div ref="circleleft" class="circle_left ab"></div>        <div ref="circleright" class="circle_right ab"></div>        <div class="circle_text">            <span class="name">成功率</span>            <span class="value">85%</span>        </div>    </div></template><script lang="ts">import { onmounted, ref, ref } from 'vue';export default {    name: 'circleprogress',    setup() {        const circleleft: ref<htmlelement | null | any> = ref(null);        const circleright: ref<htmlelement | null | any> = ref(null);        let timer = 0;        let percent = 0;        const step = () => {            percent += 1;            if (percent < 50) { circleright.value.style.transform = 'rotate(' + 3.6 * percent + 'deg)'; } else { circleright.value.style.transform = 'rotate(0)'; circleright.value.style.bordercolor = '#54c4fd'; circleleft.value.style.transform = 'rotate(' + 3.6 * (percent - 50) + 'deg)'; } if (percent < 85) { window.cleartimeout(timer); timer = window.settimeout(step, 20); } }; onmounted(() => {            step();        });        return {            circleleft,            circleright,        };    },};</script>
效果如下:
推荐学习:《css视频教程》
以上就是css怎么实现环形循环进度条的详细内容。
其它类似信息

推荐信息