Header Menu appears when scrolling up
by davidxmartins
HTML
<header id="dinamic-header">
<a href="index.html"><img src="images/logo.svg" alt="LOGO" class="wide-screen-logo"></a>
<nav id="top-nav">
<ul>
<li><a href="#">Home</a></li>
<li><a href="#">Services</a></li>
<li><a href="#">Products</a></li>
<li><a href="#">About</a></li>
<li><a href="#">Contacts</a></li>
</ul>
</nav>
</header>
CSS
#dinamic-header {
background-color: #ffffff;
width: 100%;
height: auto;
margin: 0;
padding: 0 0 0 100px;
position: fixed;
top: 0;
transition: top 0.5s;
z-index: 5;
border-bottom: 1px solid #dcdcdc;
}
/* Logo */
.wide-screen-logo {
position: absolute;
top: 20px;
left: 30px;
height: 25px;
width: auto;
z-index: 3;
}
/* Navegation */
#top-nav ul {
list-style-type: none;
display: table;
margin: 0 auto;
padding: 0;
width: auto;
height: 65px;
}
#top-nav li {
width: auto;
display: table-cell;
}
#top-nav li a {
display: block;
white-space: nowrap;
text-align: center;
padding: 19px 16px 16px 16px;
margin: 0;
text-decoration: none;
color: black;
font-family: 'Poppins', sans-serif;
font-size: 18px;
box-sizing: border-box;
border-bottom: 3px solid white;
-webkit-transition: all 500ms linear;
-ms-transition: all 500ms linear;
transition: all 500ms linear;
}
#top-nav li a:hover {
border-bottom: 3px solid black;
box-sizing: border-box;
}
body {
height: 2000px;
margin: 0;
opacity: 0.8;
background-image: linear-gradient(#ddd 1px, transparent 1px), linear-gradient(to right, #ddd 1px, #fff 1px);
background-size: 40px 40px;
}
JavaScript
var prevScrollpos = window.pageYOffset;
window.onscroll = function () {
var currentScrollPos = window.pageYOffset;
if (prevScrollpos > currentScrollPos) {
document.getElementById("dinamic-header").style.top = "0";
} else {
document.getElementById("dinamic-header").style.top = "-650px";
}
prevScrollpos = currentScrollPos;
}