javascript - 如何对使用 Angular 进行单击或标签化的输入具有不同的样式
问题描述
出于设计原因,当用户进入输入字段时,输入的边框应该改变颜色。但是,如果用户单击输入字段,则站点的其余部分也将显示为灰色。
我相信没有办法用直接的html和css来做到这一点。所以我正在寻找一种使用js的方法。该应用程序使用 Angular。
目前,我已将其设置为从 html 中调用单击和焦点。这适用于制表符。然而,当用户点击时,点击和焦点都会被调用。
输入的 HTML:
<input
name="search"
type="search"
autocomplete="off"
placeholder="Search"
onfocus="this.placeholder = ''"
onblur="this.placeholder = 'Search'"
(click)="activateSearchBoxTakeover()"
(focus)="activateSearchBoxHighlight()"
[class.tm-homepage-search-header__search-input--click]="isSearchTakeover"
[class.tm-homepage-search-header__search-input--tab]="isSearchHighlight">
组件.ts
export class HomepageSearchHeaderComponent {
public isSearchTakeover: boolean;
public isSearchHighlight: boolean;
public activateSearchBoxTakeover (): void {
console.log('click');
this.isSearchTakeover = true;
this.isSearchHighlight = false;
}
public activateSearchBoxHighlight (): void {
console.log('not click');
this.isSearchTakeover = false;
this.isSearchHighlight = true;
}
}
解决方案
我使用的“修复”是让默认的 :foucs 样式做我想要的标签。然后使用 click 函数添加一个覆盖默认样式的类。这样我也有最小的js。
推荐阅读
- c# - SimpleInjector:在测试数据库上对控制器方法进行端到端测试
- swift - Swift 4:“距离(到:)”不可用
- python - 通过内省行的每个元素来过滤熊猫数据框
- python - Apache + mod_wsgi + flask app:由于接收到 SIGUSR1 信号而进行优雅重启
- python - 在 Jenkins 代理上安装 Tensorflow (cpu)
- spring-boot - 从 Spring Boot 缓存抽象连接到 Redis 集群
- amazon-ec2 - Kubernetes 使用负载均衡器公开入口资源(API 对象)?
- javascript - 将编辑/删除图标添加到由 JSOn (AjaxCall) 填充的数据行
- html - 如何将数字输入重置为 Chrome 中的默认行为
- javascript - 我想使用带有 JavaScript 语法的 Django 模板语言