Nav <ul> 是mouseout?怎么修

Nav <ul> is mouseout? How to fix

我不是最擅长措辞我的问题,抱歉。 我正在尝试制作一个 sidenav,它会在您将鼠标悬停在屏幕侧面的一个小条上时显示,然后在鼠标移出时消失。

<!--the small bar on the side-->
<div id="sidebar"></div>

<!--the nav to display-->
<nav id="sidenav">
<ul>
<li>HOME</li>
<li>ABOUT</li>
</ul>
</nav>

然后我用一些css把它们放在一边,使它们看起来很漂亮。接下来,我添加了一些JS:

<div id="sidebar" onmouseenter="show()">""</div>
<nav id="sidenav" onmouseout="hide()">""</nav>

<script>
function show() {
    document.getElementById("sidebar").style.display = "none";
    document.getElementById("sidenav").style.display = "block";
}

function hide() {
    document.getElementById("sidebar").style.display = "block";
    document.getElementById("sidenav").style.display = "none";
}
</script>

脚本运行良好,正如我所希望的那样。我遇到的唯一问题 运行 是,当我尝试将鼠标悬停在列表项上时,hide() 函数运行,就好像它需要我以 mouseout 的形式进入 UL。

P.S。我目前正在学习 JS,因此在进行判断时请记住这一点。

一个非常简单的解决方案 CSS:

#sidebar {
  background: blue;
}
#sidenav {
  background: red;
  display: none;
}
#parent:hover #sidebar {
  display: none;
}
#parent:hover #sidenav {
  display: block;
}
<div id="parent">
  <div id="sidebar">""</div>
  <nav id="sidenav">""</nav>
</div>

通过这种方式可以改进很多东西,但这是一个好的开始。