我是在Angular 应用程序工作,并希望有一个进度条,如所附图片所示.

progress_bar progress_bar2

我在网上看到了很多进度条,但我找不到这种类型的进度条.我怎样才能得到这种类型的进度条?

推荐答案

我想有没有更好的方法,但你可以画出"分隔符",然后你就可以做这样的事情了

<div class="wrapper">
  <div class="progress" [style.width.%]="porc"></div>
  <div class="flex">
    <div *ngFor="let i of [0, 1, 2, 3, 4]" ></div>
  </div>
</div>

.wrapper
{
 display:flex;
 flex-direction:column;
}
.wrapper div
{
  height: 1rem;
}
.flex{
  display:flex;
  justify-content:space-evenly;
  margin-top:-1rem;
}
.flex div{
  width:.15rem;
  background: white;
}
.progress{
  background:steelblue;
}

看一个stackblitz

Update

其 idea 是创建一个div,其宽度百分比等于变量"porc",即

"mark"实际上是一个宽度为.15rem的div(在.css中是.flex div).您可以将background: white;替换为background: silver;,以查看是否真正绘制了div.

当我们使用css-flex时,我们可以表示项目是分布的,因此任何两个项目之间的间距(以及到边缘的间距)都等于justify-content:space-evenly

在我的代码中,带有类".flex"的div的页边距顶部是-1rem,与div-的高度相同.我们还可以对进度条应用空白区:-1rem

如果我们想要创建一个组件,唯一的条件是变量"porc"是一个@Input

我用一个组件和另一个.css更新了Stackblitz

Update 2**

如果我们可以根据"porc"更改进度条的 colored颜色 ,我们就可以使用 colored颜色 的"getter".

get color(){
  if (this.porc>80)
     return 'red';
  if (this.porc>60)
     return 'orange';
  if (this.porc>40)
     return 'green';
  return yellow;
}

并使用

<div [style.background]="color" ...>

Angular相关问答推荐

Angular 形式验证:在空和不匹配的密码上显示错误

Swiper 11角17 SSR Swiper断点不工作

Angular中的Bootstrap carousel动态属性

Angular:将服务注入非独立组件导致应用程序中断

筛选器不会从文本输入触发更改事件

PathMatch full始终连接到参数化路径,即使完整路径不匹配也是如此

如何从URL中角下载图片?

天使17中的倒计时器

我应该对我想要在我的Angular 17+组件中显示的任何变量使用信号吗?

如何以Angular 解析表单控件名称的无值访问器?

如何将 Angular 中的导航路由到同一页面并重新加载

以 Angular 形式添加动态控件失败

Observable .do() 运算符 (rxjs) 的用例

Angularmaterial步进器:禁用标题导航

Angular 2 http 没有得到

Mat-autocomplete - 如何访问选定的选项?

Angular 4 错误:没有 HttpClient 的provider提供者

Lint 错误:实现生命周期挂钩接口

缺少带有Angular的语言环境XXX的语言环境数据

Angular 4 material表突出显示一行