You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将MUI CircularProgress组件修改为半圆样式?

如何将CircularProgress组件修改为半圆样式?

我目前使用CircularProgress组件实现了完整圆形的进度条效果,现在想把它改成半圆样式,有没有简便的实现方法?

简便实现方案(以Material-UI为例)

如果用的是Material-UI的CircularProgress,可以通过自定义CSS快速实现半圆效果,以下是两种常用方法:

方法1:CSS裁剪法

直接用clip-path把圆形进度条裁剪成下半圆:

/* 自定义类 */
.half-circle-progress {
  clip-path: polygon(0 50%, 100% 50%, 100% 100%, 0 100%);
}

在组件上应用这个类:

<CircularProgress 
  className="half-circle-progress" 
  variant="determinate" 
  value={70} 
/>

方法2:调整进度条角度范围

通过修改进度条的旋转角度和路径长度,让它只在半圆范围内显示:

.half-circle-progress .MuiCircularProgress-circle {
  /* 圆周长的一半:2 * π * 45(默认半径)≈ 283 */
  stroke-dasharray: 283;
  /* 旋转180度,让进度从底部开始 */
  transform: rotate(180deg);
  transform-origin: center;
}

同样把类加到组件上即可,此时value的100对应填满整个半圆。

通用思路

如果是其他UI框架的CircularProgress组件,核心思路都是一样的:

  • 要么用CSS裁剪(clip-path/overflow:hidden)把多余的半圆隐藏
  • 要么调整组件内部进度条的绘制起始/结束角度,只渲染半圆范围的进度

内容的提问来源于stack exchange,提问作者Anand Rockzz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 21:43:18