JSFiddle - React, Tailwind, and code Playground

by RXBeat

HTML

<body>
	
<nav>
  <ul>
    <li><a href="#home">Home</a></li>
    <li><a href="#ueberuns">Über uns</a></li>
    <li><a href="#kontakt">Kontakt</a></li>
    <li><a href="#impressum">Impressum</a></li>

    <li class="submenu"><a href="#produkte" title="Unser Produktsortiment">Produkte</a>
      <ul class="megamenu">
        <ul>
          <h4>Speicher</h4>
          <li><a href="#">DDR</a></li>
          <li><a href="#">DDR2</a></li>
          <li><a href="#">DDR3</a></li>
          <li><a href="#">DDR4</a></li>
        </ul>
        <ul>
          <h4>Festplatten</h4>
          <li><a href="#">Interne Festten</a></li>
          <li><a href="#">Externe Festplen</a></li>
          <li><a href="#">SSD (Solid State)</a></li>
		  <li><a href="#">DDR4</a></li>
        </ul>
        <ul>
          <h4>Gehäuse</h4>
          <li><a href="#">PC-Gehäuse</a></li>
          <li><a href="#">Festplattenge</a></li>
          <li><a href="#">Netzteile</a></li>
          <li><a href="#">Kühler</a></li>
        </ul>
        <ul>
          <h4>Grafikkarten</h4>
          <li><a href="#">AMD</a></li>
          <li><a href="#">Nvidia</a></li>
          <li><a href="#">Sonstige</a></li>
          <li><a href="#">Kühler</a></li>
        </ul>
      </ul>
    </li>

  </ul>
</nav>

	
<main>
<section id="home">
<p>home</p>
</section>

<section id="ueberuns">
<p>über uns</p>
</section>
	
<section id="kontakt">
<p>kontakt</p>
</section>
	
<section id="impressum">
<p>impressum</p>
</section>
	
<section id="produkte">
<p>home</p>
</section>
</main>

</body>

CSS

body {
  background: #888;
}

* {
  margin: 0;
  padding: 0;
  font-family: 'Roboto', sans-serif;
  box-sizing: border-box;
}

nav {
  z-index:99;
  position: relative;
  width: 100%;
  background: #2a2a2a;
  font-size: 11px;
  display: flex; /* Zentrieren das menu */
  align-items: center; /* Zentrieren das menu */
  justify-content: center; /* Zentrieren das menu */
  border-bottom-left-radius:10px;
  border-bottom-right-radius:10px;  
  box-shadow: 0 0 10px rgba(0,0,0,1);
}

/* first stage */

nav > ul {
  position: relative;
  display: flex;
  justify-content: center;
  width: 100%;
  margin: 0 auto;
  padding: 0;
}

nav a {
  display: block;
  color: #fff;
  text-decoration: none;
}

nav ul li {
  color: #fff;
  list-style: none;
  transition: 0.5s;
}

nav > ul > li > a {
  padding: 8px 12px;
}

nav ul > li.submenu > a:after {
  position: relative;
  float: right;
  content: '';
  margin-left: 8px;
  margin-top: 4px;
  border-left: 5px solid transparent;
  border-right: 5px solid transparent;
  border-top: 5px solid #5db35b;
  border-bottom: 5px solid transparent;
}

nav ul > li.submenu:hover > a:after {
  margin-top: 2px;
  border-top: 5px solid transparent;
  border-bottom: 5px solid #5db35b;
}

nav > ul > li:hover {
  background: #4096ee;
}

/* second stage (the mega-menu) */

nav ul.megamenu {
  position: absolute;
  display: flex;
  flex-wrap: wrap; 
  width: 100%;
  top: -9999px;
  left: 0;
  padding: 30px 40px 0 20px;
  background-color:grey;
  text-align: center;
  border-top: 5px solid #4096ee;
  box-shadow: 0 5px 10px rgba(0, 0, 0, 0.5);
  z-index: 1;
  font-size: 11px;
  border-bottom-left-radius: 10px;
  border-bottom-right-radius: 10px; 
}

nav ul li:hover ul.megamenu {
  top: 100%;
}

/* third stage (child-menus in the mega-menu) */

nav ul.megamenu ul {
  width: 25%;
  margin-bottom: 40px;
  color: #000;
  box-shadow: none;
}

nav ul.megamenu h4 {
  margin-bottom: 15px;
  text-transform: uppercase;
  color: #5db35b;
}

nav ul.megamenu ul li {
...

JavaScript

$(window).on("load", function () {
            var initialHeight = $("main").height(),
                initialScrollPos = $("main").scrollTop();
            $(window).on("resize", function () {
                var currentHeight = $("main").height();
                var factor = currentHeight / initialHeight;
                var newScrollPos = initialScrollPos * factor;
                $("main").scrollTop(newScrollPos);
            });
            $("nav li").on("click", function () {
                initialHeight = $("main").height();
                var idxSection = $(this).index();
                initialScrollPos = $("main").height() * idxSection;
            });
        });