悬停上的角度材料图标

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了悬停上的角度材料图标相关的知识,希望对你有一定的参考价值。

我使用角度材料图标制作了一个星级评分组件:

<span>
  <mat-icon *ngFor="let star of stars | keyvalue" (click)="check(star.key)" [ngClass]="{'checked': star.value === 'star'}">{{star.value}}</mat-icon>
</span>

和ts:

export class StarComponent implements OnInit {
  @Input() star_type: String = 'star_border';
  @Input() nbStar: Number = 1;

  stars: Array<String> = [];

  constructor() { }

  ready() {
    for (let i = 0; i < this.nbStar; i++) {
      this.stars.push(this.star_type);
    }
  }
  ngOnInit() {
    console.log(this.stars);
  }

  ngOnChanges() {
    this.ready();
  }

  check(index) {
    if (this.stars[index] === 'star_border') {
      for (let i = 0; i <= index; i++) {
        this.stars[i] = 'star';
      }
    }
    else {
      for (let i = this.stars.length - 1; i > index; i--) {
        this.stars[i] = 'star_border';
      }
    }
  }

}

现在,我想在悬停时更改star.value:如果star.value是星号,我想用star_border悬停值更改。 (如果星值是star_border我刚刚改变了颜色)

我不知道怎么做。如果有人可以帮助我,谢谢。

编辑以获得更多许可:

我的组件呈现如下:

<mat-icon>[VALUE]</mat-icon>[...]<mat-icon>[VALUE]</mat-icon>
// [VALUE] is star or star_border (change on click)

如果用户将鼠标悬停在mat-icon上并且mat-icon的值为star,我想使用star_hover进行更改(仅限用户悬停mat-icon的时间)

(对不起,我对英语不太友好)

答案

这是你可以做出的改变 -

html

<span>
  <mat-icon *ngFor="let star of stars | keyvalue" (mouseenter) ="updateStar(star)" (click)="check(star.key)" [ngClass]="{'checked': star.value === 'star'}">{{star.value}}</mat-icon>
</span>

TS

updateStar(star){
    if(star.value == 'star'){
        star.value = 'star_hover';
    }else{
      //star.value = 'star'; //you may light to reverse it
    }
}

以上是关于悬停上的角度材料图标的主要内容,如果未能解决你的问题,请参考以下文章

Swiper滑块SVG图标有时不会在角度材料svg图标中显示

角度材料步进更改图标颜色

将图标添加到角度材料输入

在悬停CSS上获取图像上的图标

角度材料复选框标签的就地编辑

在页面滚动时打开上方的角度材料工具提示并避免工具提示被隐藏