【问题标题】:Change the color of the timeline in different states改变不同状态下时间线的颜色
【发布时间】:2020-03-26 09:03:23
【问题描述】:

我制定了一个包含 4 个级别的时间线。当我单击每个级别时,时间线都充满了绿色。是否可以在不同类型的状态下改变这种颜色?

在状态 4 中,我的圆圈和线条都是绿色的,如何在剩余的 3 中更改这种颜色?

也就是说,在3我想要黄色,在2绿色3在1红色。

在图片中,我留下了我想要的示例

谁能帮帮我?

HTML

<ul class="timeline" id="timeline" >
    <li class="li" [ngClass]="priority['isComplete']?'complete':''" *ngFor="let priority of Priorities; let  p = index;">
        <div class="timestamp">
        </div>
        <div class="status">    
                <span class="circle" (click)="changeTimeline(priority.id)">{{priority.id}}</span>
            <h4 class="timelineh4">{{priority.text}}</h4>
        </div>
    </li>
</ul>

组件

public Priorities:Array<Object> = [
    {id: 4, text: '',isComplete:true},
    {id: 3, text: '',isComplete:true},
    {id: 2, text: '',isComplete:true},
    {id: 1, text: '',isComplete:true},
];

【问题讨论】:

    标签: html css angular typescript


    【解决方案1】:

    我已更改您计算所选级别的方法以保存所选状态。

    这个this.selectedPrioroties = prio; 将设置当前状态,我已经创建了所选文本的 CSS 类库

      public changeTimeline(prio) {
        this.selectedPrioroties = prio;
        this.selectedState =  String(prio.text).toLowerCase().replace(' ','-');
      }
    

    selectedStatelow , mid-low ,mid ,high的基础我在css文件app.component.css中创建了一组类

    .circle {
        border: none;                 
      transition: all 200ms ease-in;
    }
    
    .low li:nth-child(1) .circle {
        background-color: #66DC71;    
    }
    
    .mid-low li:nth-child(1) .circle ,.mid-low li:nth-child(2) .circle {
        background-color: #ffeb3b;    
    }
    
    .mid li:nth-child(1) .circle ,.mid li:nth-child(2) .circle ,.mid li:nth-child(3) .circle {
        background-color: #2196f3;    
    }
    .high li:nth-child(1) .circle ,.high li:nth-child(2) .circle ,.high li:nth-child(3) .circle ,.high li:nth-child(4) .circle {
        background-color: #ff5722;    
    }
    

    模板

    <ul class="timeline" id="timeline" [ngClass]="selectedState" >
        <li class="li" *ngFor="let priority of Priorities; let  p = index;">
            <div class="timestamp">
            </div>
            <div class="status">    
                    <span class="circle" (click)="changeTimeline(priority)">{{priority.id}}</span>
                <h4 class="timelineh4">{{priority.text}}</h4>
            </div>
        </li>
    </ul>
    

    demo ?

    【讨论】:

    • 如果我想按定义放置资产(可以是 4 个)我应该如何进行?
    • 对不起,我不明白你的意思,你能给出更多解释吗???
    • 对不起 :( 作为初始状态,我没有任何“圆圈”处于活动状态。是否可以将初始状态设置为状态 4?也就是说,当我打开应用程序时,圆圈将是绿色的(状态 4)。您可以在帖子图片中看到这一点。
    • 只需在 ngOnInit 设置 changeTimeline ,检查我是否更新了演示
    猜你喜欢
    • 2021-07-11
    • 1970-01-01
    • 1970-01-01
    • 2011-05-19
    • 1970-01-01
    • 1970-01-01
    • 2021-07-09
    • 1970-01-01
    • 2017-01-24
    相关资源
    最近更新 更多