鼠标悬停时如何打开菜单折叠?

时间:2018-09-15 16:44:26

标签: javascript html css twitter-bootstrap collapse

我有一个包含Drupal 8和Bootstrap 3.3.7的站点

我的网站上有一个折叠的菜单,我希望将其打开以将鼠标悬停在桌面上。

这是我的JS代码,但不起作用:

$(".navbar-toggle-first").mouseenter(function () {
        $(".navbar-collapse-first").fadeIn();
    });
 $(".navbar-toggle-first").mouseleave(function(){
       $(".navbar-collapse-first").fadeOut();
});

这是我页面的HTML代码:

<button type="button" class="navbar-toggle-first collapsed" data-toggle="collapse" data-target="#navbar-collapse-first" aria-expanded="false">

  <div class="icon-navbar-first">
    <span class="fa-layers fa-3x">
      <i class="far fa-circle"></i>
      <span class="navbar-icon-open">
        <i class="fas fa-th-list" data-fa-transform="shrink-8"></i>
      </span>
      <span class="navbar-icon-close">
        <i class="fas fa-times" data-fa-transform="shrink-8"></i>
      </span>
    </span>
  </div>

  <div class="icon-navbar-first-alert icon-navbar-first-alert-disable">
    <span class="fa-layers fa-3x">
      <i class="fas fa-circle"></i>
      <span class="navbar-icon-open">
        <i class="fas fa-th-list fa-inverse" data-fa-transform="shrink-8"></i>
      </span>
      <span class="navbar-icon-close">
        <i class="fas fa-times fa-inverse" data-fa-transform="shrink-8"></i>
      </span>
    </span>
  </div>

</button>

{# Navigation (collapsible first) #}
{% if page.navigation_collapsible_first %}
  <div id="navbar-collapse-first" class="navbar-collapse-first collapse width navbar-collapse-first-fixed-top">
    {{ page.navigation_collapsible_first }}
  </div>
{% endif %}

1 个答案:

答案 0 :(得分:0)

您的导航结构如下:

<ul>
    <li>About</li>
    <li>Products
        <ul>
            <li>Booster</li>
            ....
        </ul>
    </li>
</ul>

然后,您可以使用CSS(而不是JavaScript)来控制子导航的隐藏和显示。可以使用:hover伪选择器来完成。

方法是最初使用来隐藏子菜单

  

ul ul {display:none}

当用户将鼠标移到主菜单项上时,使用:hover选择器显示子菜单

  

li:hover ul {display:block}