【发布时间】:2021-06-15 14:28:27
【问题描述】:
我有几列需要区分,当单击某一列以仅在该列上激活该类时,如果激活不同的列以取消激活前一列并激活该列。
HTML
<ion-col (click)="clickEvent()"><img [ngClass]="{'ico_device_mobile' : status}" src="assets/icon/ico_device_mobile.svg" height="28"><span [ngClass]="{'colorSecondary' : status}">{{ liveboxDeviceEditCms.literalMobile }}</span></ion-col>
<ion-col (click)="clickEvent()"><img [ngClass]="{'ico_device_tablet' : status}" src="assets/icon/ico_device_tablet.svg" height="30"><span [ngClass]="{'colorSecondary' : status}">{{ liveboxDeviceEditCms.literalTablet }}</span></ion-col>
<ion-col (click)="clickEvent()"><img [ngClass]="{'ico_device_computer' : status}" src="assets/icon/ico_device_computer.svg" height="27"><span [ngClass]="{'colorSecondary' : status}">{{ liveboxDeviceEditCms.literalComputer }}</span></ion-col>
<ion-col (click)="clickEvent()"><img [ngClass]="{'ico_device_tv' : status}" src="assets/icon/ico_device_tv.svg" height="28"><span [ngClass]="{'colorSecondary' : status}">{{ liveboxDeviceEditCms.literalTv }}</span></ion-col>
<ion-col (click)="clickEvent()"><img [ngClass]="{'ico_device_game' : status}" src="assets/icon/ico_device_game.svg" height="20"><span [ngClass]="{'colorSecondary' : status}">{{ liveboxDeviceEditCms.literalGame }}</span></ion-col>
<ion-col (click)="clickEvent()"><img [ngClass]="{'ico_device_other' : status}" src="assets/icon/ico_device_other.svg" height="23"><span [ngClass]="{'colorSecondary' : status}">{{ liveboxDeviceEditCms.literalOther }}</span></ion-col>
SCSS 这是一个类的示例。每个类都有相同的东西,只是类名不同。
.ico_device_mobile {
mask: url(/assets/icon/ico_device_mobile.svg);
mask-repeat: no-repeat;
filter: invert(26%) sepia(46%) saturate(3365%) hue-rotate(303deg) brightness(90%) contrast(104%);
}
TS
clickEvent(){
this.status = !this.status;
}
点击前是这样的:
点击后是这样的:
因此,如果我只点击一个,它应该会变成紫色,而不是全部,如果一个是紫色,但我点击另一个不是“活动”的图标,它应该会变成紫色,而前一个活动的图标会变回黑色。
【问题讨论】:
标签: html sass ionic3 angular5 ng-class