代码之家  ›  专栏  ›  技术社区  ›  Andre Elrico

mat菜单穿透“cdk叠加雾”

  •  2
  • Andre Elrico  · 技术社区  · 7 年前

    STACKBLITZ (某人)说明了问题所在。

    .WHYYYYY 显示了我面临的“两个”问题。

    1. 为了让mat菜单在悬停时打开,我需要设置 z-index:1050; ( ref 2 hacky workaround )在菜单按钮上。
    2. 这会导致“对话框雾”出现问题。(单击按钮->SB)
    3. 我发现覆盖有一个默认的“z索引1000”

    看来我有两种方法来解决这个问题。

    1. 给雾一个更高的z指数(劈劈劈)
    2. (期望的解决方案)
      • 我不明白为什么我需要 z指数:1050;

    1 回复  |  直到 7 年前
        1
  •  9
  •   yurzui    7 年前

    当材质cdk打开菜单时,它将创建 cdk-overlay-container 具有填充所有浏览器窗口的背景区域。

    body
      your app elements
    
      div.cdk-overlay-container   - z-index = 1000
        div.cdk-overlay-backdrop
    

    enter image description here

    一旦你触发 mouseenter mouseleave 事件立即发生。

    这就是为什么在按钮上设置z-index超过1000使其工作的原因。

    但是你可以猜到,你可以把它扔掉 backdrop :

    子菜单.component.html

    <mat-menu ... [hasBackdrop]="false">
    

    Forked Stackblitz

    推荐文章