2

我正在尝试自学如何制作响应式可折叠导航栏。我已经设法让导航栏在低于一定宽度时折叠并在单击汉堡菜单时打开,但是当单击其中一个链接时我很难让它重新折叠起来。例如,“联系我们”将转到页面的右侧部分,但导航栏将保持打开状态。

$(document).ready(function() {
  $nav = $('.nav');
  $toggleCollapse = $('.toggle-collapse');
  $toggleIcons = $('.toggle-icons');

  /* Click Event Toggle Menu */
  $toggleCollapse.click(function() {
    $nav.toggleClass('collapse');
  })
});
.parent-fixed {
  position: fixed;
  width: 100%;
  z-index: 99999;
}

.nav {
  padding: 0 2rem;
  height: 0rem;
  min-height: 9vh;
  overflow: hidden;
  transition: height 1s ease-in-out;
}

.nav .nav-menu {
  justify-content: space-between;
}

.nav .toggle-collapse {
  position: absolute;
  top: 0;
  width: 90%;
  cursor: pointer;
  display: none;
}

.nav .toggle-collapse .toggle-icons {
  display: flex;
  justify-content: flex-end;
  padding: 1.4rem 0;
}

.nav .toggle-collapse .toggle-icons i {
  font-size: 1.4rem;
}

.collapse {
  height: 20rem;
}

.nav .nav-items {
  display: flex;
  margin: 0;
  padding: 0;
}

.nav .nav-items .nav-link {
  padding: 1.4rem;
  font-size: 1.1rem;
  position: relative;
  transition: all 0.2s ease;
}

.nav .nav-items .nav-link:hover {
  background-color: white;
}

.nav .nav-items .nav-link:hover a {
  color: var(--text-navy);
}

.nav .nav-brand a {
  font-size: 1.3rem;
  padding: 1.3rem 0;
  text-decoration: none;
  display: block;
  font-family: Montserrat_Bold;
  cursor: default;
}

.nav .social {
  padding: 1.5rem 0;
}

.nav .social i {
  padding: 0 0.2rem
}

.nav .social i:hover {
  color: #989b9b;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="parent-fixed">
  <nav class="nav">
    <div class="nav-menu flex-row">
      <div class="nav-brand">
        <a href="#" class="text-navy">The Art of Data</a>
      </div>
      <div class="toggle-collapse">
        <div class="toggle-icons">
          <i class="fas fa-bars"></i>
        </div>
      </div>
      <div>
        <ul class="nav-items">
          <li class="nav-link">
            <a href="#" class="nav-icon">Home</a>
          </li>
          <li class="nav-link">
            <a href="#preview-section" class="nav-icon">View Work</a>
          </li>
          <li class="nav-link">
            <a href="#" class="nav-icon">Contact Me</a>
          </li>
        </ul>
      </div>
      <div class="social">
        <a href="#"><i class="fab fa-linkedin"></i></a>
        <a href="#"><i class="fab fa-github"></i></a>
        <a href=""><i class="fab fa-twitter"></i></a>
      </div>
    </div>
  </nav>
</div>

4

0 回答 0