如何禁用背景菜单关闭-Ionic 3

时间:2018-08-07 23:44:58

标签: ionic-framework ionic3

我在查找有关此文档时遇到麻烦。

在Ionic中,菜单具有一些功能,如果您单击背景幕,则该菜单将关闭。因此,基本上单击菜单以外的任何位置,菜单就会消失。我想禁用此功能,以便用户可以与背景下的项目进行交互。

我尝试禁用背景和菜单上的指针事件,但似乎仍会发生这种情况。有什么想法吗?


有趣的发现;菜单关闭功能实际上看起来像是在离子含量上。导致问题:

  • 我希望用户能够在不关闭菜单的情况下与具有离子含量的内容进行交互。

2 个答案:

答案 0 :(得分:0)

这是示例代码,如何在离子应用程序中执行此操作。

    import { Platform, MenuController } from 'ionic-angular';

// ... Other code

  constructor(menuCtrl: MenuController /* ... other code ...*/)

// ... Other code

  let menu = menuCtrl.get();

  menu.swipeEnable(false); // Disable drag to open/close

  // Override default behaviour of closing the menu on 
  // content or backdrop click
  menu['onBackdropClick'] = () => {
    // No-op  
  };

  menu.ionOpen.subscribe(() => {
    // When the menu is open ...

    // Remove Ionic's CSS rules for menu-content-open class that restricts 
    // mouse events on ion-nav
    menu.getContentElement().classList.remove("menu-content-open");

    // Reduce the size of the content pane so that it does not
    // overflow off the screen
    menu.getContentElement().style.width = 
      `calc(100% - ${menu.getMenuElement().clientWidth}px)`;
  });

  menu.ionClose.subscribe(() => {
    // When the menu is closed ...

    // Restore the size of the content pane
    menu.getContentElement().style.width = '';
  });

我做了一个stackblitz项目,您可以检查一下。您可以从here.

签出

答案 1 :(得分:0)

对我来说,这有所帮助:

ion-menu {
  pointer-events: none;
}

ion-menu > * {
  pointer-events: all;
}