/2017030386349start-2090242_960_720.jpg)
之前在AngularJS2中一种button切换效果的实现(一)和AngularJS2中一种button切换效果的实现(二)中实现了按钮的切换效果,但是方法比较low,这次我们使用Angular2的指令来实现。
指令实现hover效果
1 | import { Directive, ElementRef, HostListener, Input } from '@angular/core'; |
1 | <button myHighlight class="btn">按钮一</button> |
1 | .btn{ |
hover的效果直接参考Angular官网的代码。
/2018-11-12_21-17-02.gif)
指令实现click效果
1 | import { Directive, ElementRef, HostListener, Input } from '@angular/core'; |
1 | <div> |
1 | .btn{ |
click效果仍然用@HostListener装饰器引用属性型指令的宿主元素,首先把所有button的背景颜色重置,然后再设置当前点击对象的背景颜色,这样就达到了点击后背景颜色变化的效果。
/2018-11-12_21-20-32.gif)
指令实现click加hover效果
1 | import { Directive, ElementRef, HostListener, Input } from '@angular/core'; |
1 | <div> |
1 | .btn{ |
配合上文click效果,只要加上一行css代码就可以实现click和hover的组合效果,此处务必使用hover伪类,并用!important来提升样式的优先级,如果用@HostListener装饰器,mouseenter、mouseleave、click三者会打架:
/2018-11-12_21-22-45.gif)