如何创建带有侧边栏的导航菜单 mailchimp.com

How to create the navigation menu with sidebar as on mailchimp.com

如何创建像 https://mailchimp.com/ 那样带有侧边栏的导航? 当您悬停导航 link 时侧边栏出现,例如“产品”,但您仍然可以从导航中看到其他 link,单击它们,悬停等。不确定如何实现这是因为在我的例子中,当我将鼠标悬停在 link 上时,会出现一个侧边栏,但我看不到导航

example

<html>
  <head>
    <style>
      #menu {
        width: 100%;
        height: 70px;
        border: 1px black solid;
      }

      #submenu {
        position: fixed;
        top: 0;
        bottom: 0;
        left: 0;
        border: 1px black solid;
        width: 500px;
        background-color: gray;
        z-index: 600;
        display: none;
      }

      .open {
        z-index: auto;
        display: block !important;
      }

      .link {
        vertical-align: middle;
        display: inline-block;
      }

      .linkOpen {
        z-index: 620;
      }
    </style>
  </head>
  <body>
    <div id="menu">
      <a class="link" id="link" href="/" onmouseover="addStyle()" onmouseleave="removeStyle()">link1</a>
      <div id="submenu">
        <ul>
          <li>123</li>
          <li>456</li>
        </ul>
      </div>
      <a class="link" href="/">link2</a>
      <a class="link" href="/">link3</a>
    </div>
    <script>
      function addStyle() {
        var element = document.getElementById("submenu");
        element.classList.add("open");
        var link = document.getElementById("link");
        link.classList.add("linkOpen");
      }

      function removeStyle() {
        var element = document.getElementById("submenu");
        element.classList.remove("open");
      }
    </script>
  </body>
</html>

可以通过使用 z-index 和适当的元素嵌套来实现您想要做的事情。

这是一个基本示例(没有动画和一些智能元素比例/位置):https://codepen.io/etumyan/pen/eYeXKxg