html+css实现圆环进度效果


<!DOCTYPE html>
<html lang="zh-CN">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>动态显示圆环状进度条</title>
    <style>
        body {
            padding: 20px;
        }

        .progress {
            width: 90px;
            height: 90px;
            background: conic-gradient(#F06D6D var(--progress), #f1f1f1 var(--last));
            border-radius: 50%;
            position: relative;

            &::before {
                content: attr(data-progress);
                position: absolute;
                inset: 10px;
                background-color: #fff;
                width: 70px;
                height: 70px;
                text-align: center;
                line-height: 70px;
                border-radius: 50%;
                font-size: 18px;
                
            }
        }
        .progress[data-progress^="0"] {
            --start-angle: calc(360deg * (var(--progress) / 100)); /* 根据进度计算起始角度 */
        }
    </style>
</head>

<body>
    <div class="progress" style="--progress: 80%; --last: 0%;" data-progress="80%"></div>
    <script>
        // 获取进度条元素
        const progressElement = document.querySelector('.progress');
        // 动态设置进度条进度的函数
        function setProgress(progress) {
            progressElement.style.setProperty('--progress', progress);
            progressElement.setAttribute('data-progress', progress);

            // 当进度小于20%时,调整--start-angle
            if (progress < '20%') {
                progressElement.style.setProperty('--start-angle', `calc(360deg * (${progress} / 100))`);
            } else {
                progressElement.style.setProperty('--start-angle', '0deg');
            }
        }
        // 示例:假设从其他地方获取到进度为70%
        const newProgress = '4%';
        // 调用动态设置进度函数,将进度设置为70%
        setProgress(newProgress);
    </script>
</body>

</html>

具体效果如下图所示:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值