我有一个mat-sidenav以及一个mat-item和mat-menu列表。然后,当我将鼠标悬停在其中一项上时,我希望菜单显示出来。这部分正在工作。但是,当我移出该菜单或项目并移至新项目上方时,我希望其菜单显示。
https://stackblitz.com/edit/angular-xsscrm
我包括了一个关于行为演示的堆栈闪电战。
这里出了什么问题,我同时进入和退出,但是当我将菜单留在一个新菜单上时,除非单击该菜单,否则它不会打开。
感谢您的帮助
答案 0 :(得分:0)
这里的问题是,打开菜单时,它会创建一个覆盖背景并与所有元素重叠的覆盖层。这种背景导致侦听元素无法“看到”鼠标事件,直到通过鼠标单击消除叠加层为止。幸运的是,菜单控件具有删除背景的标志;将此设置为false可解决您遇到的问题。
旁注:*ngFor
元素上有一个<mat-list>
,但我想将其移至<mat-list-item>
元素上,因为您需要很多列表项,而不是很多列表。由于您在*ngFor
之外使用<mat-list-item>
的局部变量,因此可以创建一个<ng-container>
元素来容纳您的*ngFor
。参见下面的stackblitz:
https://stackblitz.com/edit/angular-xsscrm-kx6jyd
另一个注意事项:此行为类似于工具提示。也许这样可以更好地控制您的用例? https://material.angular.io/components/tooltip/overview