gpt4 book ai didi

angular - 是否可以为 mat-tree 设置动画? ( Angular Material )

转载 作者:行者123 更新时间:2023-12-03 18:40:33 24 4
gpt4 key购买 nike

我正在使用来自 Angular Materials 的 mat-tree ( https://material.angular.io/components/tree/overview )。在扩展父树节点时,我想为子树节点的出现和消失设置动画。
这是我希望动画如何的一个例子:
tree animation
我知道 Angular 提供了一个动画功能,但我不知道如何为 mat-tree 设置动画。
是否可以为 Angular Material 的 mat-tree 设置动画?或者如果我想要那种动画,我是否被迫编写自己的树形菜单?

最佳答案

按照已接受的答案中的方法通过垂直滑入/滑出子节点的动画来执行此操作,您可以使用嵌套树。 Stackblitz

给组件添加动画:

  @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;
}

关于angular - 是否可以为 mat-tree 设置动画? ( Angular Material ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57673075/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com