angular - 过渡动画在 Angular 5 中不起作用
问题描述
我正在开发一个需要滑入/滑出 sidenav 的 Angular 5 应用程序。
尝试使用动画状态来获得这种效果。状态 css 得到正确应用并且 div 进出移动,但是它很跳跃,即 1500 毫秒缓出动画不起作用。
我已导入 BrowserAnimationsModule 并将其添加到app.module.ts中的导入中
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
viewer.component.html
<div id="app-container" *ngIf="supported">
<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>
</div>
查看器.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';
}
}
我尝试过的事情
- 尝试使用 NoopAnimationsModule 而不是 BrowserAnimationModule
- 尝试根据这个问题将“显示:块”添加到侧边栏容器 div ()
- 尝试添加 web-animations-js
- 尝试一起删除缓入出动画并只做动画(1500ms)
- 尝试删除侧栏容器中的内部子组件,以防那不是动画
- 尝试使用 animate(1.5s) 和 animate(1500) 而不是 1500ms
- 尝试将切换按钮移到动画容器之外
- 重新安装 @angular/animations 和 @angular/platform-browser
不知道下一步该怎么做!任何帮助将非常感激!
解决方案
这可能是因为您没有初始化组件中的状态:
export class ViewerComponent implements OnInit {
sidebarState = 'out';
toggleMenu(){
this.sidebarState = this.sidebarState == 'out' ? 'in' : 'out';
}
}
推荐阅读
- javascript - 如何获取输入按钮php的值
- java - 当您想将一些通用功能应用于某些特定方法时使用的设计模式?
- lua - 如何实现尾递归组合?
- python - Python如何打乱有序列表以制作元素序列?
- django - Django get_total_topup() 缺少 1 个必需的位置参数:“请求”
- vb.net - 用于存储子窗体计数的 VB.NET 模块级变量
- php - WP_List_Table 查询以按当前日期和时间比较元键
- ios - 如何使图像在 UIImageView 中移动
- ios - 快速创建基于数组值的 UI 组件
- php - 实体属性更改自定义逻辑的 RESTful 解决方案