使用 'X' 图标关闭 materialize sidenav

Close materialize sidenav with 'X' Icon

我将 sidenav 的样式设置为覆盖 100% 的屏幕宽度,并且需要在右上角添加一个标准 'X' 图标以关闭导航。它也是一个 wordpress 主题,所以也有。建议?

<nav class="transparent z-depth-0">
  <div class="nav-wrapper">
    <a href="<?php echo get_option('home'); ?>" class="brand-logo center-align"></a>

    <a href="#" data-activates="mobile-demo" class="right button-collapse" style="color: white;"><i class="material-icons">menu</i></a>

    <?php wp_nav_menu (array( 'theme_location'=>'primary', menu_class => 'right hide-on-med-and-down')); ?>


    <?php wp_nav_menu (array( 'theme_location'=>'primary', menu_class => 'side-nav', menu_id => 'mobile-demo')); ?>


  </div>

</nav>

编辑:这是关闭 sidenav onclick 的函数

 // if closeOnClick, then add close event for all a tags in side sideNav
    if (options.closeOnClick === true) {
      menu_id.on("click.itemclick", "a:not(.collapsible-header)",      function(){
        removeMenu();
      });
    } 

基本上,如果点击关闭设置为 true(最小值),sidenav 在点击导航中的任何 link 时关闭。基于此看来我需要添加此 link:

<a href="#"  class="right" style= "color: white;"><i class="material-icons">clear</i></a>

进入这个数组(上面代码中与 sidenav 相关的第二个:

<?php wp_nav_menu (array( 'theme_location'=>'primary', menu_class => 'side-nav', menu_id => 'mobile-demo')); ?>

我已经尝试过,但到目前为止都没有成功。

也许你可以使用 jQuery fadeOut 功能?

好的,经过多次试验、错误和研究,答案如下:

<nav class="transparent z-depth-0">
  <div class="nav-wrapper">
    <a href="<?php echo get_option('home'); ?>" class="brand-logo center- align"></a>

    <a href="#" data-activates="mobile-demo" class="right button-collapse" style="color: white;"><i class="material-icons">menu</i></a>

    <?php wp_nav_menu (array( 'theme_location'=>'primary', menu_class => 'right hide-on-med-and-down')); ?>


    <?php wp_nav_menu (array('theme_location' => 'primary', 'items_wrap' => my_nav_wrap(), )); ?>


  </div>

</nav>

并在 functions.php 中创建自定义 nav_wrap:

function my_nav_wrap() {
    $wrap  = '<ul class="side-nav" id="mobile-demo">';
    $wrap .= '<li>';
    $wrap .= '<a href="#"  class="right" style= "color: white;">';
    $wrap .= '<i class="material-icons">clear</i>';
    $wrap .= '</a>';
    $wrap .= '</li>';
    $wrap .= '<div class="clear"></div>';
    $wrap .= '%3$s';
    $wrap .= '</ul>';

  return $wrap;
}

只需使用 class sidenav-close

将项目添加到菜单

示例:

<li>
   <a href="#!" class="sidenav-close">Close </a>
</li>

正在开发 Metalbox Answer

<div>
   <a href="#!" class="sidenav-close"><i class="material-icons">close</i></a>
</div>

然后是 CSS

a.sidenav-close > i.material-icons {
    position: absolute;
    right:20px;
    top: 20px;
    color:black  
}