mcpField
S
syncfusion-angular-progress-bar

syncfusion-angular-progress-bar

github.com/syncfusion设计与 UI0265 次安装1 周前更新
代码仓库

关于 syncfusion-angular-progress-bar

这是面向 Angular 开发者的 Syncfusion Progress Bar 实现技能,用于显示任务或流程进度。它涵盖多种形状、进度模式、动画、自定义样式和无障碍配置。

主要功能

  1. 01线性、圆形和半圆形样式
  2. 02确定、不确定和缓冲模式
  3. 03动画、颜色、尺寸与分段配置
  4. 04进度标签、工具提示和事件
  5. 05键盘操作与 ARIA 支持

适用场景

  1. 01显示文件上传进度
  2. 02呈现带动画的加载状态
  3. 03展示主要与次要进度
  4. 04标记任务完成情况

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/syncfusion/angular-ui-components-skills --skill syncfusion-angular-progress-bar

安装后在 Claude Code 中输入/syncfusion-angular-progress-bar确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
accessibility.md
api-reference.md
customization.md
features-and-interactions.md
getting-started.md
progress-modes.md
types-and-shapes.md

详细介绍

实现 Syncfusion Angular 进度条

Angular 进度条是一个轻量级组件,可直观呈现任务或流程的进度。它支持多种形状(线性、圆形、半圆形)、进度模式(确定、不确定、缓冲)、动画以及丰富的自定义选项。

何时使用此技能

在以下情况下使用此技能:

  • 需要在 Angular 中显示任务进度
  • 想要通过动画显示加载状态
  • 需要不同形状的进度条(线性、圆形)
  • 正在构建下载/上传进度界面
  • 需要符合无障碍规范的进度指示器
  • 想要显示多个进度状态(主要进度 + 次要进度)

在以下情况下不要使用此技能:

  • 加载动画(加载状态请使用 Skeleton Loader)
  • 步骤指示器(请使用 Stepper 组件)
  • 时间线可视化(请使用 Timeline 组件)

组件概览

Syncfusion 进度条提供:

  • 多种形状:线性、圆形、半圆形
  • 进度模式:确定、不确定、缓冲
  • 动画:平滑的进度过渡,可自定义持续时间和延迟
  • 自定义:颜色(进度、轨道、次要进度)、粗细、分段、圆角、范围
  • 分段支持:将进度划分为多个分段,并可调整间距
  • 无障碍功能:完全符合 WCAG 标准,支持键盘导航和 ARIA 属性
  • 事件:进度完成、值变化、文本呈现
  • 响应式:与 Angular 的变更检测无缝协作

文档与导航指南

入门

📄 阅读: references/getting-started.md

  • 安装和包配置
  • Angular 依赖项和导入
  • 基本进度条实现
  • CSS 主题配置
  • 最小可运行示例
  • 常见配置模式
类型和形状

📄 阅读: references/types-and-shapes.md

  • 线性进度条
  • 圆形进度条
  • 半圆形进度条
  • 特定形状的属性
  • 各类型的适用场景
  • 在不同类型之间切换
进度模式

📄 阅读: references/progress-modes.md

  • 确定模式(进度已知)
  • 不确定模式(进度未知)
  • 缓冲模式(主要进度 + 次要进度)
  • 模式选择指南
  • 各模式的实际应用场景
自定义

📄 阅读: references/customization.md

  • 尺寸和粗细
  • 颜色配置(进度和轨道)
  • Min、Max 和 Value 属性
  • Radius 和 InnerRadius
  • 分段和分段间距
  • 高级样式模式
功能和交互

📄 阅读: references/features-and-interactions.md

  • 注释和标签
  • 动画配置
  • 工具提示支持
  • 事件处理(valueChanged、progressComplete)
  • 范围指示器
  • 响应式数据绑定
无障碍功能

📄 阅读: references/accessibility.md

  • 符合 WCAG 2.1 标准
  • WAI-ARIA 属性
  • 键盘导航支持
  • 屏幕阅读器注意事项
  • 无障碍测试
  • 最佳实践

快速入门示例

import { Component } from '@angular/core';
import { ProgressBarModule } from '@syncfusion/ej2-angular-progressbar';

@Component({
  selector: 'app-root',
  standalone: true,
  imports: [ProgressBarModule],
  template: `
    <div style="margin: 20px;">
      
      <h4>File Download</h4>
      <ejs-progressbar
        [value]="65"
        height="20"
        type="Linear"
        style="width: 300px;">
      </ejs-progressbar>

      
      <h4 style="margin-top: 20px;">Task Completion</h4>
      <ejs-progressbar
        [value]="65"
        type="Circular"
        height="200"
        width="200">
      </ejs-progressbar>

      
      <h4 style="margin-top: 20px;">System Status</h4>
      <ejs-progressbar
        [value]="65"
        type="SemiCircular"
        height="200"
        width="200">
      </ejs-progressbar>
    </div>
  `
})
export class AppComponent {
}

常见模式

模式 1:文件上传进度
export class FileUploadComponent {
  uploadProgress = 0;

  onFileUpload(file: File) {
    // Simulate upload
    const interval = setInterval(() => {
      this.uploadProgress += Math.random() * 30;
      if (this.uploadProgress >= 100) {
        this.uploadProgress = 100;
        clearInterval(interval);
      }
    }, 500);
  }
}
模式 2:带动画的加载状态
export class LoadingComponent {
  @Input() isLoading = false;
}

模板:

<ejs-progressbar
  *ngIf="isLoading"
  [isIndeterminate]="true"
  [height]="4"
  [animation]="{ enable: true, duration: 2000, delay: 0 }">
</ejs-progressbar>
模式 3:多个进度状态
export class DownloadComponent {
  primaryProgress = 35;
  secondaryProgress = 65;
}

模板:

<ejs-progressbar
  [value]="primaryProgress"
  [secondaryProgress]="secondaryProgress"
  type="Linear">
</ejs-progressbar>

关键属性参考

属性类型用途
valuenumber当前进度值(0-100 或自定义最小值/最大值)
typestring形状:'Linear'、'Circular'、'SemiCircular'
isIndeterminateboolean为 true 时显示不确定状态
secondaryProgressnumber缓冲/次级进度值
minimumnumber进度范围的最小值(默认值:0)
maximumnumber进度范围的最大值(默认值:100)
heightnumber|string进度条高度,单位为像素或百分比
widthnumber|string进度条宽度,单位为像素或百分比
trackThicknessnumber轨道线条粗细
progressThicknessnumber进度条粗细
secondaryProgressThicknessnumber次级进度粗细
progressColorstring进度条颜色(hex、rgb 等)
secondaryProgressColorstring次级进度颜色
trackColorstring轨道背景颜色
cornerRadiusstring'Round' | 'Square' - 圆角样式
radiusnumber|string圆形/半圆形进度条的外半径
innerRadiusnumber|string环形外观的内半径
segmentCountnumber将进度划分为 N 个区段
segmentSpacingnumber区段间距,单位为像素
showProgressValueboolean显示进度百分比文本
animationAnimationModel动画配置:{enable, duration, delay}

事件参考

Progress Bar 组件会触发多个重要事件:

事件说明参数
valueChanged进度值变化时触发IProgressValueEventArgs
progressCompleted进度达到 100% 时触发IProgressValueEventArgs
textRender渲染进度文本前触发ITextRenderEventArgs

注意: 使用 (textRender) 事件可自定义进度标签的显示格式。

API 参考

完整的 Syncfusion Angular ProgressBar API 参考位于 references 文件夹中。其中包含属性类型、方法锚点和事件参数链接,可对应到官方文档。

阅读 API 参考:references/api-reference.md

相关组件

  • 骨架加载器 - 用作通用加载指示器
  • 微调器 - 用于不确定状态的加载
  • 步骤条 - 用于逐步展示进度
  • Toast - 用于进度通知

评论

支持 Markdown