css 为什么我的菜单从屏幕上消失了,但它仍然可见?

hrirmatl  于 2023-06-25  发布在  其他
关注(0)|答案(2)|浏览(123)

我目前正在为移动的设备创建菜单边栏,当我隐藏菜单时,它最终会从屏幕上消失,但在向右滑动时仍然可见。screenshot of problem
此外,请随意指出我代码中的任何问题,因为我对Web开发还是相当新手!

<nav>
        <a href="index.html"> LOGO</a>
        <div class="nav-links" id="navLinks">
          <i class="fa-solid fa-xmark icon" onclick="hideMenu()"></i>
          <ul>
            <li><a href="">HOME</a></li>
            <li><a href="">GALLERY</a></li>
            <li><a href="">ABOUT</a></li>
            <li><a href="">CONTACT</a></li>

          </ul>
        </div>
        <i class="fa-solid fa-bars icon" onclick="showMenu()"></i>
      </nav>
@media(max-width: 700px){
  .text-box h1{
    font-size:30px;
  }
  .nav-links ul li{
    display: block;
    font-size: 30px;
  }
  .nav-links{
    position: absolute;
    background:#337195;
    height:100vh;
    width:250px;
    top:0;
    right:-300px;
    text-align:left;
    z-index: 2;
    transition: 1s;
  }
  .icon { 
    display: block;
    color:white;
    margin: 10px;
    font-size: 22px;
    cursor: pointer;
  }
  .nav-links ul{
    padding: 30px;
  }
  .nav-links ul li::after{
    width: 100%;
    background:white; 
  }

}

菜单显示/隐藏动画的JavaScript

<script>
  var navLinks = document.getElementById("navLinks")

  function showMenu(){
    navLinks.style.right = "0"
  }
  function hideMenu(){
    navLinks.style.right = "-300px"
  }
</script>
zengzsys

zengzsys1#

我不认为有足够的背景来回答你的具体情况的问题,但这是我会做的基础上,我可以看到。
看起来没有任何东西隐藏导航元素(<nav>)。
打开状态下,将display: block;添加到导航中

nav {
  display: block;
}

关闭状态期间,将css更改为display: none;到父导航

nav {
   display: none;
}

有很多其他的方法来实现这一点,但我会从这里开始。

relj7zay

relj7zay2#

您需要在父容器上添加overflow: hidden;

相关问题