【发布时间】:2018-09-19 00:25:53
【问题描述】:
情况
我有一张包含设备及其状态的表格。当我单击特定按钮时,处于脱机状态的行需要高亮显示几秒钟,然后恢复正常。
到目前为止我所拥有的
<tr id="deviceRow" class="user-item" *ngFor="let device of group.devices" (click)="$event.stopPropagation()" [class.highlightOn]="this.offlineHighlight == true && device.onlineState == 'Offline'">
当我单击按钮时,offlineHighlight 布尔值变为 true,它添加了 highlightOn 类,就是这样。
.highlightOn {
background-color: rgb(255, 68, 65);
-webkit-animation: fade-out 3s ease-out both;
animation: fade-out 3s ease-out both;
}
@-webkit-keyframes fade-out {
0% {
background-color: rgba(255,51,47,1);
}
100% {
background-color: transparent;
}
}
@keyframes fade-out {
0% {
background-color: rgba(255,51,47,1);
}
100% {
background-color: transparent;
}
}
这会添加“突出显示”动画。
动画完成后,我在按钮代码中再次将offlineHighlught布尔值设置为false。
showOfflineDevices() {
this.offlineHighlight = true;
this.tabIndex = 1;
setTimeout(function(){
this.offlineHighlight = false;
}, 3000);
}
在动画完成之前一切正常。标准的表格行对于每个奇偶行都有不同的背景颜色。动画完成后,所有具有 highlightOn 类的行都具有白色背景色,如您在此处看到的那样。
TL:DR 动画完成后表格行的背景颜色需要恢复正常。偶数行现在也是白色的,应该是灰色的。
【问题讨论】:
-
我无权访问图片(公司代理),您能发一个minimal reproducible example 吗? (顺便说一句,感谢您的 TL;DR,这应该是发布新问题的要求)
-
@trichetriche 很抱歉,但我认为我不能让它变得更小。该按钮调用将布尔值设置为 true 的 showOfflineDevices() 函数。然后它将 highlightOn 类添加到动画 3 秒的行。然后按钮函数中的计时器将布尔值设置回false。
-
你说得对,但它更多的是关于可验证的部分。你知道,我们可以玩什么?
-
@trichetriche Uhm 我不确定,如果你真的需要,我会尝试,但这是我第一次这样做,所以不知道需要多长时间。跨度>
-
好吧,我不是那个有问题的人:P 你可以使用 stackblitz,如果你按照 angular 给出的风格指南,它应该需要大约 10 分钟。但我看到你有答案,所以不要打扰!
标签: css angular typescript