angular - 角度动画出现在它应该滑入的元素顶部
问题描述
我有一个位于列表组内的 div,我试图根据切换开关的状态滑入/滑出。问题是,当动画发生时,它会出现在 div 的前面,我希望它会落后于外观正确。
这适用于 Angular 和 Bootstrap 4。我遵循了一个关于如何开始使用 Angular Animations 的教程,并且还尝试将样式添加到列表组和 div(以及控制器中)以调整基于 z-index在我完成的一些谷歌搜索中。
动画的 div 如下。
<div class="list-group" style="z-index: 9">
<div class="list-group-item">
<!-- toggle switch is right here --->
<div class="recurringSchedule border-top py-2" *ngIf="expense.recurring" [@slideInOut]>
...
</div>
</div>
</div>
动画是在我的控制器中定义的,就像这样。
@Component({
selector: 'app-create',
templateUrl: './create.component.html',
styleUrls: ['./create.component.css'],
animations: [
trigger('slideInOut', [
transition(':enter', [
style({transform: 'translateY(-100%)', zIndex: '-5'}),
animate('400ms ease-in', style({transform: 'translateY(0%)'}))
]),
transition(':leave', [
style({zIndex: '-5'}),
animate('400ms ease-in', style({transform: 'translateY(-100%)'}))
])
])
]
})
我希望recurringSchedule
div 根据列表组或列表组项后面的切换开关状态分别向下和向上滑动。但它在列表组前面向上/向下滑动,因此您可以看到整个动画,而不是隐藏其中的一部分。
更新
根据评论中的要求,我创建了一个 stackblitz 来演示该问题。
解决方案
问题是您正在使用 为元素设置动画position: relative
。定位元素总是比静态定位元素具有更高的 z-index。为了解决这个问题,我建议将你的两个标签包装p
在一个 div 中,并给它position: relative
一个更高的 z-index。
这是您的 stackblitz 与我的更改: https ://stackblitz.com/edit/angular-hdbzwg
推荐阅读
- node.js - 如何在 Electron 的 MacOS 菜单栏右侧添加图标?
- r - 如何在 R 中使用聚集而不是联合
- firebase - 如何使用云功能保护 Firebase 消息传递主题?
- matlab - 如何在热图中设置 x 轴值
- sql - 皱眉(错误)错误消息:“值不在预期范围内。” - 在 ListObjects.Add().QueryTable
- java - FragmentManager 无法在 androidx 中解析
- mysql - 最佳架构同时元素到用户和组
- typescript - 将对象数组中的所有对象推送到另一个对象数组
- python - 如果字符串在Python的列表中,如何替换文本中的字符串?
- html - 使用 CSS 从右到左 div 并在 5 秒后隐藏