【问题标题】:Prevent Mobile Navbar from Covering the Webpage when Anchor Link is Clicked防止单击锚链接时移动导航栏覆盖网页
【发布时间】:2021-01-03 23:00:21
【问题描述】:

到目前为止,我的网站上的响应式导航栏是一个精简的单页,到目前为止,我已经能够让所有其他工作正常工作。虽然其他所有组件都可以正常工作,但主要问题在于移动版本,单击锚链接时导航栏不会关闭。它最终覆盖了内容并为用户创造了糟糕的体验。这将如何在代码中修复?代码如下:

<nav>
  <input type="checkbox" id="check">
  <label for="check" class="checkbtn">
    <i class="fas fa-bars"></i>
  </label>
  <label>
    <a href="index.html">
      <img src="logo.png" alt="Logo" class="logo"/>
    </a>
  </label>
  <ul>
    <li><a class="active" href="#home">Home</a></li>
    <li><a href="#features">Features</a></li>
    <li><a href="#about">About</a></li>
    <li><a href="login.html">Login</a></li>
  </ul>
</nav>



/* NAVBAR */
*{
  padding: 0;
  margin: 0;
  text-decoration: none;
  list-style: none;
  box-sizing: border-box;
}

body{
  font-family: 'Nunito', sans-serif;
}

nav{
  background: white;
  height: 80px;
  width: 100%;
}

.logo {
  margin-left: 25px;
  width: 80px;
  height: 80px;
}

nav ul{
  float: right;
  margin-right: 20px;
}

nav ul li{
  display: inline-block;
  line-height: 80px;
  margin: 0 5px;
}

nav ul li a{
  color: black;
  font-size: 17px;
  padding: 7px 13px;
  border-radius: 3px;
  text-transform: uppercase;
}

a.active,a:hover{
  background: #B9ECFF;
  transition: .5s;
}

.checkbtn{
  font-size: 30px;
  color: black;
  float: right;
  line-height: 80px;
  margin-right: 40px;
  cursor: pointer;
  display: none;
}

#check{
  display: none;
}

@media (max-width: 952px){
  label.logo{
    font-size: 30px;
    padding-left: 50px;
  }

  nav ul li a{
    font-size: 16px;
  }
}

@media (max-width: 858px){
  .checkbtn{
    display: block;
  }

  ul{
    position: fixed;
    width: 100%;
    height: 100vh;
    background: white;
    top: 80px;
    left: -100%;
    text-align: center;
    transition: all .5s;
  }

  nav ul li{
    display: block;
    margin: 50px 0;
    line-height: 30px;
  }

  nav ul li a{
    font-size: 20px;
  }

  a:hover,a.active{
    background: none;
    color: #25C0F8;
  }

  #check:checked ~ ul{
    left: 0;
  }
}

【问题讨论】:

    标签: javascript html css mobile navbar


    【解决方案1】:

    我猜情况是: 您单击导航栏-> 导航栏打开-> 单击导航菜单-> 导航栏在加载其他页面/进入时不会关闭#point

    以下是针对这种情况的解决方案: 您单击导航栏-> 导航栏打开-> 单击导航菜单->(再次单击导航栏) 原因,单击导航栏会打开和关闭导航栏..对吗?

    按照以下步骤操作:

    1.将id 放在显示和隐藏导航菜单的导航上 假设那是“mainnavbar

    <nav id="mainnavbar">
    

    2.将onclick属性添加到每个锚标签,hidenavvar()作为其值:

    <a onclick="hidenavbar()">
    

    3.在js中声明hidenavbar()函数:

    <script>
    function hidenavbar()
    {
        document.getElementById('mainnavbar').click();
    }
    </script>
    

    【讨论】:

    • 不,问题仍然存在。
    • 您需要查看显示和隐藏导航菜单的内容。也许它不是
    • 我在多个标签上试过这个,但结果相同。
    • 目前正在查找移动响应式导航栏,它说 JS 中有这个切换功能。这会以任何方式相关吗?
    • jQuery 中使用的切换函数。我希望我能看到你的完整代码!
    猜你喜欢
    • 2018-05-13
    • 1970-01-01
    • 2019-12-16
    • 1970-01-01
    • 2022-08-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多