html - 如何在单击时动态添加类并在 2 秒后将其删除?
问题描述
我不知道如何正确地提出我的问题,所以我会在这里尝试解释自己:
在我的 Angular 7 应用程序中,我有一个带有图标作为菜单项的导航栏。
单击时,我希望他们获得某个课程,并且该课程必须在 2 秒后消失。
我有 7 个元素,这里以 2 个为例:
<li class="fushia-icon">
<a routerLink="/savoir" routerLinkActive="fushia-icon-active" class="animated"
[class.flip]="this.iconIsClicked" (click)="iconClicked(this.iconIsClicked = true)">
</a>
</li>
<li class="beige-icon">
<a routerLink="/diplomes" routerLinkActive="beige-icon-active" class="animated"
[class.flip]="this.iconIsClicked" (click)="iconClicked(this.iconIsClicked = true)">
</a>
</li>
在我的 ts 文件中,我这样做了:
iconClicked(icon){
setTimeout(()=> {
icon = false
}, 2000)
}
但这根本不符合我的要求,因为它们都获得了类,并且 iconIsClicked 值不会返回到要分析的元素(很明显)。
我知道我可以使用 7 个变量创建 7 个函数,以便每个图标都有自己的东西,但我正在寻找一种更快的方法,而无需重复代码。
感谢
解决方案
您可以使用模板引用变量和添加/删除(Element.classList方法)。
HTML
<li class="fushia-icon">
<a #fushiaIcon class="animated" (click)="iconClicked(fushiaIcon)"></a>
</li>
<li class="beige-icon">
<a #beigeIcon class="animated" (click)="iconClicked(beigeIcon)"></a>
</li>
TS
iconClicked(menuIcon: HTMLElement) {
menuIcon.classList.add('flip');
setTimeout(()=> {
menuIcon.classList.remove('flip');
}, 2000)
}
推荐阅读
- python - Python ctypes,dll函数参数
- excel - 如何使用 VBA 计算 Excel 工作簿中数据透视表的数量?
- c# - 打开一个在设计模式下设置属性的表单
- html - 如何不在链接中的元素下划线?
- dijkstra - Dijkstra 是 A* 的特例吗?
- python - 当编码未知时,您应该以“wb”模式打开文件吗?
- elixir - 如何测试设置 404 状态以及 Phoenix 重定向的插件
- c - 如何在 C 中的命令行上打印出主要函数参数?
- javascript - HTML 表格只能在 Chrome 中显示,而不能在 Safari 中显示
- javascript - 将参数传递给javascript中的函数