Angular动画:旋转180°点击图片
Angular animation : Rotation 180° click image
如何使用 Angular 4 在图像按钮上进行图像旋转(单击:0° -> 180°/再次单击:180° -> 0°)?
我也用Angular Material
这是我的按钮:
<!-- Button open left menubar -->
<button md-icon-button class="left-menubar-button" (click)="start.toggle()">
<md-icon class="md-custom-theme-gray">label_outline</md-icon>
</button>
此按钮将打开一个侧导航,我想将其设置为动画以使其更加用户友好
谢谢
您不需要 material,因为 Angular 在其核心模块中引入了内置动画。举个例子:
import { ...} from '@angular/core';
import {trigger, state, style, animate, transition} from '@angular/animations';
@Component({
selector: 'my-app',
animations: [
// Each unique animation requires its own trigger. The first argument of the trigger function is the name
trigger('rotatedState', [
state('default', style({ transform: 'rotate(0)' })),
state('rotated', style({ transform: 'rotate(-180deg)' })),
transition('rotated => default', animate('400ms ease-out')),
transition('default => rotated', animate('400ms ease-in'))
]);
])
],
...
export class RotateComponent {
state: string = 'default';
rotate() {
this.state = (this.state === 'default' ? 'rotated' : 'default');
}
}
在模板中:
<button (click)="rotate()">Press me to rotate</button>
并确保将绑定添加到您正在操作的标签:
<img [@rotatedState]='state' />
此外,请确保将动画模块导入到您的应用中,如下所示:
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
@NgModule({
...,
imports: [
...,
BrowserAnimationsModule
],
...
})
用工作示例stackblitz检查
如何使用 Angular 4 在图像按钮上进行图像旋转(单击:0° -> 180°/再次单击:180° -> 0°)?
我也用Angular Material
这是我的按钮:
<!-- Button open left menubar -->
<button md-icon-button class="left-menubar-button" (click)="start.toggle()">
<md-icon class="md-custom-theme-gray">label_outline</md-icon>
</button>
此按钮将打开一个侧导航,我想将其设置为动画以使其更加用户友好
谢谢
您不需要 material,因为 Angular 在其核心模块中引入了内置动画。举个例子:
import { ...} from '@angular/core';
import {trigger, state, style, animate, transition} from '@angular/animations';
@Component({
selector: 'my-app',
animations: [
// Each unique animation requires its own trigger. The first argument of the trigger function is the name
trigger('rotatedState', [
state('default', style({ transform: 'rotate(0)' })),
state('rotated', style({ transform: 'rotate(-180deg)' })),
transition('rotated => default', animate('400ms ease-out')),
transition('default => rotated', animate('400ms ease-in'))
]);
])
],
...
export class RotateComponent {
state: string = 'default';
rotate() {
this.state = (this.state === 'default' ? 'rotated' : 'default');
}
}
在模板中:
<button (click)="rotate()">Press me to rotate</button>
并确保将绑定添加到您正在操作的标签:
<img [@rotatedState]='state' />
此外,请确保将动画模块导入到您的应用中,如下所示:
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
@NgModule({
...,
imports: [
...,
BrowserAnimationsModule
],
...
})
用工作示例stackblitz检查