我正在开发一个Angular 5应用程序,它需要滑入/滑出侧面。尝试使用动画状态来获得此效果。状态css正在被正确应用并且div移入和移出,但它是跳跃的,即1500ms的缓出动画不起作用。
我已导入BrowserAnimationsModule并将其添加到 app.module.ts 中的导入内容
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
viewer.component.html 文件 -
<div class="container">
<div class="main-viewport">
<app-viewer-container viewer_mode=true></app-viewer-container>
</div>
<div class="side-bar-container" [@slideInOut]="sidebarState">
<div class="nav-toggle-btn">
<div class="btn" (click)="toggleMenu()">
</div>
</div>
<!-- <app-parameter-viewer globals=true></app-parameter-viewer> -->
</div>
</div>
viewer.component.ts 文件
@Component({
selector: 'app-viewer',
templateUrl: './viewer.component.html',
styleUrls: ['./viewer.component.scss'],
animations: [
trigger('slideInOut', [
state('in', style({
transform: 'translate3d(0, 0, 0)',
})),
state('out', style({
transform: 'translate3d(70%, 0, 0)'
})),
transition('in <=> out', animate('1500ms ease-out'))
]),
]
})
export class ViewerComponent implements OnInit {
// only relevant code added
sidebarState:string;
toggleMenu(){
this.sidebarState = this.sidebarState == 'out' ? 'in' : 'out';
}
}
我尝试过的事情
不确定下一步该做什么!任何帮助将非常感激!
答案 0 :(得分:0)
可能是因为您没有初始化组件中的状态:
export class ViewerComponent implements OnInit {
<强> sidebarState = 'out';
强>
toggleMenu(){
this.sidebarState = this.sidebarState == 'out' ? 'in' : 'out';
}
}
答案 1 :(得分:0)
我刚遇到这个问题。问题是@ angular / animation与@ angular / core(5.2.0)的版本不同(6.0.0)。刚刚使用&#34; ng update @ angular / core&#34;更新为Angular 6.有关Angular 6的信息可以在他们的博客上找到:https://blog.angular.io/version-6-of-angular-now-available-cc56b0efa7a4
也许这也可能是你的问题?