angular - 是否可以为 mat-tree 设置动画?(角材料)
问题描述
我正在使用来自 Angular Materials的 mat-tree ( https://material.angular.io/components/tree/overview )。扩展父树节点时,我想为子树节点的外观和消失设置动画。这是我希望动画如何的示例:
我知道 Angular 提供了动画功能,但我不知道如何为 mat-tree 设置动画。
是否可以为 Angular Material 的 mat-tree 设置动画?或者如果我想要那种动画,我是否被迫编写自己的树形菜单?
解决方案
按照接受的答案中的方法使用垂直滑入/滑出的子节点的动画来执行此操作,您可以使用嵌套树。堆栈闪电战
将动画添加到组件中:
@Component({
selector: 'tree-nested-overview-example',
templateUrl: 'tree-nested-overview-example.html',
styleUrls: ['tree-nested-overview-example.css'],
animations:[
trigger('slideVertical', [
state(
'*',
style({
height: 0
})
),
state(
'show',
style({
height: '*'
})
),
transition('* => *', [animate('400ms cubic-bezier(0.25, 0.8, 0.25, 1)')])
])
]
})
将动画应用于包含子节点的元素:
<mat-nested-tree-node *matTreeNodeDef="let node; when: hasChild">
<li>
<div class="mat-tree-node">
<button mat-icon-button matTreeNodeToggle
[attr.aria-label]="'toggle ' + node.name">
<mat-icon class="mat-icon-rtl-mirror">
{{treeControl.isExpanded(node) ? 'expand_more' : 'chevron_right'}}
</mat-icon>
</button>
{{node.name}}
</div>
<ul [@slideVertical]="treeControl.isExpanded(node) ? 'show' : null">
<ng-container matTreeNodeOutlet></ng-container>
</ul>
</li>
</mat-nested-tree-node>
隐藏元素上的溢出:
.example-tree ul {
overflow: hidden;
}
推荐阅读
- oracle - 使用派生(虚拟)列拆分 CLOB 列
- c++ - Objects of a class that does not have operator ==() are converted to another type
- python - Django can't save comment to post properly
- python - Python reading binary values as ASCII
- excel - VBA - 如果条件满足,首先检查另一个工作表范围内的值。如果匹配,则返回设置值,如果不匹配,则将数据附加到新行
- python - 拖动 Python 脚本文件时打开文件
- c# - Xamarin 表单中类似老虎机的列表视图
- php - repeated pattern in preg_match_all pattern doesn't result in multiple $matches
- javascript - 如何检查用户名是否已被占用?
- python - How can I pass a dictionary through "get_success_message" function in Django?