javascript - 如何使下拉菜单在悬停时保持打开并在离开时消失

标签 javascript jquery html css drop-down-menu

我真的需要帮助。我试过了,但还是不行。我想制作一个下拉菜单,该菜单将在悬停时出现,并在离开该下拉菜单时消失。

$(document).ready(function(){
	$('.navigation-menu').mouseenter(function(){
  	$('.navigation-dropdown').addClass('visible');
  });
  $('.navigation-dropdown').mouseleave(function(){
  	$('.navigation-dropdown').removeClass('visible');
  });
});
ul{
  margin: 0;
}
.container{
  background-color: rgb(0,0,0);
  height: 30px;
  padding: 10px;
}
.container-dropdown{
  background-color: rgb(125,125,125)
}
.dropdown-menu{
  display: inline-block;
}
.navigation-dropdown{
  display: none;
}
.navigation-menu{
  display: inline-block;
  height: 100%;
}
.visible{
  display: block;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<header id="header"> 
  <div class="container">
    <img src="" alt="">
    <div class="navigation">
      <ul>
        <li class="navigation-menu"><a href="">home</a></li>
        <li class="navigation-menu"><a href="">home</a></li>
        <li class="navigation-menu"><a href="">home</a></li>
      </ul>
    </div>
  </div>
  <div class="navigation-dropdown">
    <div class="container-dropdown">
      <ul>
        <li class="dropdown-menu">
          <img src="http://placehold.it/50x50" alt="">
        </li>
        <li class="dropdown-menu">
          <img src="http://placehold.it/50x50" alt="">
        </li>
        <li class="dropdown-menu">
          <img src="http://placehold.it/50x50" alt="">
        </li>
      </ul>
    </div>
  </div>
</header>

所以,我只是想让那个灰色的 div 在我移动鼠标离开导航菜单类时消失

我的问题:我必须先将鼠标移到灰色 div 上才能使灰色 div 消失。我想要的只是让灰色 div 可以消失,而不必先将鼠标移动到灰色 div

最佳答案

有很多更好的设计选项供您期待,以获得您想要的。但如果您只想坚持当前的布局和设计,我会进行一些更改以获得您想要的内容。

.container{
  background-color: rgb(0,0,0);
  height: 20px;
  padding: 10px;
  padding-bottom: 0px; --to remove any space between menu title and the dropdown
}

$(document).ready(function(){
    $('.navigation-menu').mouseenter(function(){
    $('.navigation-dropdown').addClass('visible');
  });
  $('.navigation-dropdown').mouseleave(function(){
    $('.navigation-dropdown').removeClass('visible');
  });

  $('.navigation-dropdown').mouseenter(function(){
      $('.navigation-dropdown').addClass('visible');
  });

  $('.navigation').mouseleave(function(){
        $('.navigation-dropdown').removeClass('visible');
  });

  $('.navigation-menu').mouseleave(function(){
        $('.navigation-dropdown').removeClass('visible');
  });
});

如果鼠标离开 navigation div,则隐藏下拉菜单。

希望对您有所帮助。

关于javascript - 如何使下拉菜单在悬停时保持打开并在离开时消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43126089/

相关文章:

javascript - 咕噜声 : creating a zip file with the current date (AAAA-MM-DD)

javascript - 如何以字母显示日期 - Javascript --> insidehtml?

javascript - .加载时不工作

html - 修改网页,使其更兼容移动设备/平板电脑

css - 试图在可见/隐藏 div 之间复制淡入淡出

html - 使用 CSS 调整图像大小

javascript - 日期检查 - 无法从未定义中读取属性 "0"

javascript - 选择附加到光标的 div 覆盖的节点

javascript - ASP.NET 不能很好地处理外部 JavaScript 文件

javascript - 使用 handlebars js 的分页功能