Angular 中的动画
Animation in Angular
我使用 SidebarService Example 创建了一个 Angular 边栏:
export class SidebarService {
public hidden: boolean = true;
toggle(): void {
this.hidden = !this.hidden;
}
}
然后我有一个侧边栏组件:
@Component({
selector: 'sidebar',
templateUrl: './sidebar.component.html',
styleUrls: [ './sidebar.component.css' ]
})
export class SidebarComponent {
constructor(public sidebarService: SidebarService) { }
}
哪个模板是:
<div id="sidebar" [ngClass]="{'hidden': sidebarService.hidden}">
<button type="button" (click)="sidebarService.toggle()">
Close Sidebar
</button>
<nav>
<ul>
<li>
<a href="#">Page 1</a>
</li>
<li>
<a href="#">Page 2</a>
</li>
</ul>
</nav>
</div>
最后我使用如下:
<sidebar></sidebar>
<button type="button" (click)="sidebarService.toggle()">
Open Sidebar
</button>
<h1>Main Content</h1>
问题
而不是 Hide/Show 侧边栏是否可以从左侧滑动?
使用服务是在不同地方共享 hide/show 侧边栏的好方法吗?
或者有更好的选择吗?
侧边栏不是 Hide/Show 可以从左侧滑动吗?
您可以将 angular 动画用于 ngIf
切换而不是 hidden
class。
<div *ngIf="!sidebarService.hidden" id="sidebar" [@anim]="sidebarService.hidden">
和 ts 文件:
animations: [
trigger('anim', [
transition(':enter', [
style({transform: 'translateX(-100%)'}),
animate('200ms ease-in', style({transform: 'translateX(0%)'}))
]),
transition(':leave', [
animate('200ms ease-in', style({transform: 'translateX(-100%)'}))
])
])
]
演示 here
我使用 SidebarService Example 创建了一个 Angular 边栏:
export class SidebarService {
public hidden: boolean = true;
toggle(): void {
this.hidden = !this.hidden;
}
}
然后我有一个侧边栏组件:
@Component({
selector: 'sidebar',
templateUrl: './sidebar.component.html',
styleUrls: [ './sidebar.component.css' ]
})
export class SidebarComponent {
constructor(public sidebarService: SidebarService) { }
}
哪个模板是:
<div id="sidebar" [ngClass]="{'hidden': sidebarService.hidden}">
<button type="button" (click)="sidebarService.toggle()">
Close Sidebar
</button>
<nav>
<ul>
<li>
<a href="#">Page 1</a>
</li>
<li>
<a href="#">Page 2</a>
</li>
</ul>
</nav>
</div>
最后我使用如下:
<sidebar></sidebar>
<button type="button" (click)="sidebarService.toggle()">
Open Sidebar
</button>
<h1>Main Content</h1>
问题
而不是 Hide/Show 侧边栏是否可以从左侧滑动?
使用服务是在不同地方共享 hide/show 侧边栏的好方法吗?
或者有更好的选择吗?
侧边栏不是 Hide/Show 可以从左侧滑动吗?
您可以将 angular 动画用于 ngIf
切换而不是 hidden
class。
<div *ngIf="!sidebarService.hidden" id="sidebar" [@anim]="sidebarService.hidden">
和 ts 文件:
animations: [
trigger('anim', [
transition(':enter', [
style({transform: 'translateX(-100%)'}),
animate('200ms ease-in', style({transform: 'translateX(0%)'}))
]),
transition(':leave', [
animate('200ms ease-in', style({transform: 'translateX(-100%)'}))
])
])
]
演示 here