Menu

How TO – Full screen Overlay Navigation


Previous


Next

Learn how to create a full screen overlay navigation menu.


 See how it works:






×
About
Services
Clients
Contact

Fullscreen Overlay Nav Example

Click on the element below to open the fullscreen overlay navigation menu.

In this example, the navigation menu will slide in, from left to right:

☰ open

Try it Yourself

<!DOCTYPE html>
<html>
<head>
<meta name=”viewport” content=”width=device-width, initial-scale=1″>
<style>
body {
font-family: ‘Lato’, sans-serif;
}

.overlay {
height: 100%;
width: 0;
position: fixed;
z-index: 1;
top: 0;
left: 0;
background-color: rgb(0,0,0);
background-color: rgba(0,0,0, 0.9);
overflow-x: hidden;
transition: 0.5s;
}

.overlay-content {
position: relative;
top: 25%;
width: 100%;
text-align: center;
margin-top: 30px;
}

.overlay a {
padding: 8px;
text-decoration: none;
font-size: 36px;
color: #818181;
display: block;
transition: 0.3s;
}

.overlay a:hover, .overlay a:focus {
color: #f1f1f1;
}

.overlay .closebtn {
position: absolute;
top: 20px;
right: 45px;
font-size: 60px;
}

@media screen and (max-height: 450px) {
.overlay a {font-size: 20px}
.overlay .closebtn {
font-size: 40px;
top: 15px;
right: 35px;
}
}
</style>
</head>
<body>

<div id=”myNav”>
<a href=”javascript:void(0)” onclick=”closeNav()”>&times;</a>
<div>
<a href=”#”>About</a>
<a href=”#”>Services</a>
<a href=”#”>Clients</a>
<a href=”#”>Contact</a>
</div>
</div>

<h2>Fullscreen Overlay Nav Example</h2>
<p>Click on the element below to open the fullscreen overlay navigation menu.</p>
<p>In this example, the navigation menu will slide in, from left to right:</p>
<span style=”font-size:30px;cursor:pointer” onclick=”openNav()”>&#9776; open</span>

<script>
function openNav() {
document.getElementById(“myNav”).style.width = “100%”;
}

function closeNav() {
document.getElementById(“myNav”).style.width = “0%”;
}
</script>

</body>
</html>

Create a Full screen Overlay Navigation

Step 1) Add HTML:

 

Example

<!– The overlay –>
<div id=”myNav” class=”overlay”>

  <!– Button to close the overlay navigation –>
  <a href=”javascript:void(0)” class=”closebtn” onclick=”closeNav()”>&times;</a>

  <!– Overlay content –>
  <div class=”overlay-content”>
    <a href=”#”>About</a>
    <a href=”#”>Services</a>
    <a href=”#”>Clients</a>
    <a href=”#”>Contact</a>
  </div>

</div>

<!– Use any element to open/show the overlay navigation menu –>
<span onclick=”openNav()”>open</span>

Step 2) Add CSS:

 

Example

/* The Overlay (background) */
.overlay {
  /* Height & width depends on how you want to reveal the overlay (see JS below) */   
  height: 100%;
  width: 0;
  position: fixed; /* Stay in place */
  z-index: 1; /* Sit on top */
  left: 0;
  top: 0;
  background-color: rgb(0,0,0); /* Black fallback color */
  background-color: rgba(0,0,0, 0.9); /* Black w/opacity */
  overflow-x: hidden; /* Disable horizontal scroll */
  transition: 0.5s; /* 0.5 second transition effect to slide in or slide down the overlay (height or width, depending on reveal) */
}

/* Position the content inside the overlay */
.overlay-content {
  position: relative;
  top: 25%; /* 25% from the top */
  width: 100%; /* 100% width */
  text-align: center; /* Centered text/links */
  margin-top: 30px; /* 30px top margin to avoid conflict with the close button on smaller screens */
}

/* The navigation links inside the overlay */
.overlay a {
  padding: 8px;
  text-decoration: none;
  font-size: 36px;
  color: #818181;
  display: block; /* Display block instead of inline */
  transition: 0.3s; /* Transition effects on hover (color) */
}

/* When you mouse over the navigation links, change their color */
.overlay a:hover, .overlay a:focus {
  color: #f1f1f1;
}

/* Position the close button (top right corner) */
.overlay .closebtn {
  position: absolute;
  top: 20px;
  right: 45px;
  font-size: 60px;
}

/* When the height of the screen is less than 450 pixels, change the font-size of the links and position the close button again, so they don’t overlap */
@media screen and (max-height: 450px) {
  .overlay a {font-size: 20px}
  .overlay .closebtn {
    font-size: 40px;
    top: 15px;
    right: 35px;
  }
}


 

Step 3) Add JavaScript:

The example below slides in the overlay navigation menu from left to right (0 to 100% width), when it is triggered:

Slide in from the side

<!DOCTYPE html>
<html>
<head>
<meta name=”viewport” content=”width=device-width, initial-scale=1″>
<style>
body {
font-family: ‘Lato’, sans-serif;
}

.overlay {
height: 100%;
width: 0;
position: fixed;
z-index: 1;
top: 0;
left: 0;
background-color: rgb(0,0,0);
background-color: rgba(0,0,0, 0.9);
overflow-x: hidden;
transition: 0.5s;
}

.overlay-content {
position: relative;
top: 25%;
width: 100%;
text-align: center;
margin-top: 30px;
}

.overlay a {
padding: 8px;
text-decoration: none;
font-size: 36px;
color: #818181;
display: block;
transition: 0.3s;
}

.overlay a:hover, .overlay a:focus {
color: #f1f1f1;
}

.overlay .closebtn {
position: absolute;
top: 20px;
right: 45px;
font-size: 60px;
}

@media screen and (max-height: 450px) {
.overlay a {font-size: 20px}
.overlay .closebtn {
font-size: 40px;
top: 15px;
right: 35px;
}
}
</style>
</head>
<body>

<div id=”myNav”>
<a href=”javascript:void(0)” onclick=”closeNav()”>&times;</a>
<div>
<a href=”#”>About</a>
<a href=”#”>Services</a>
<a href=”#”>Clients</a>
<a href=”#”>Contact</a>
</div>
</div>

<h2>Fullscreen Overlay Nav Example</h2>
<p>Click on the element below to open the fullscreen overlay navigation menu.</p>
<p>In this example, the navigation menu will slide in, from left to right:</p>
<span style=”font-size:30px;cursor:pointer” onclick=”openNav()”>&#9776; open</span>

<script>
function openNav() {
document.getElementById(“myNav”).style.width = “100%”;
}

function closeNav() {
document.getElementById(“myNav”).style.width = “0%”;
}
</script>

</body>
</html>

Slide down from the top

<!DOCTYPE html>
<html>
<head>
<meta name=”viewport” content=”width=device-width, initial-scale=1″>
<style>
body {
font-family: ‘Lato’, sans-serif;
}

.overlay {
height: 0%;
width: 100%;
position: fixed;
z-index: 1;
top: 0;
left: 0;
background-color: rgb(0,0,0);
background-color: rgba(0,0,0, 0.9);
overflow-y: hidden;
transition: 0.5s;
}

.overlay-content {
position: relative;
top: 25%;
width: 100%;
text-align: center;
margin-top: 30px;
}

.overlay a {
padding: 8px;
text-decoration: none;
font-size: 36px;
color: #818181;
display: block;
transition: 0.3s;
}

.overlay a:hover, .overlay a:focus {
color: #f1f1f1;
}

.overlay .closebtn {
position: absolute;
top: 20px;
right: 45px;
font-size: 60px;
}

@media screen and (max-height: 450px) {
.overlay {overflow-y: auto;}
.overlay a {font-size: 20px}
.overlay .closebtn {
font-size: 40px;
top: 15px;
right: 35px;
}
}
</style>
</head>
<body>

<div id=”myNav”>
<a href=”javascript:void(0)” onclick=”closeNav()”>&times;</a>
<div>
<a href=”#”>About</a>
<a href=”#”>Services</a>
<a href=”#”>Clients</a>
<a href=”#”>Contact</a>
</div>
</div>

<h2>Fullscreen Overlay Nav Example</h2>
<p>Click on the element below to open the fullscreen overlay navigation menu.</p>
<p>In this example, the navigation menu will slide downwards from the top:</p>
<span style=”font-size:30px;cursor:pointer” onclick=”openNav()”>&#9776; open</span>

<script>
function openNav() {
document.getElementById(“myNav”).style.height = “100%”;
}

function closeNav() {
document.getElementById(“myNav”).style.height = “0%”;
}
</script>

</body>
</html>

This example opens the navigation menu without animation:

Open the menu without animation

<!DOCTYPE html>
<html>
<head>
<meta name=”viewport” content=”width=device-width, initial-scale=1″>
<style>
body {
font-family: ‘Lato’, sans-serif;
}

.overlay {
height: 100%;
width: 100%;
display: none;
position: fixed;
z-index: 1;
top: 0;
left: 0;
background-color: rgb(0,0,0);
background-color: rgba(0,0,0, 0.9);
}

.overlay-content {
position: relative;
top: 25%;
width: 100%;
text-align: center;
margin-top: 30px;
}

.overlay a {
padding: 8px;
text-decoration: none;
font-size: 36px;
color: #818181;
display: block;
transition: 0.3s;
}

.overlay a:hover, .overlay a:focus {
color: #f1f1f1;
}

.overlay .closebtn {
position: absolute;
top: 20px;
right: 45px;
font-size: 60px;
}

@media screen and (max-height: 450px) {
.overlay a {font-size: 20px}
.overlay .closebtn {
font-size: 40px;
top: 15px;
right: 35px;
}
}
</style>
</head>
<body>

<div id=”myNav”>
<a href=”javascript:void(0)” onclick=”closeNav()”>&times;</a>
<div>
<a href=”#”>About</a>
<a href=”#”>Services</a>
<a href=”#”>Clients</a>
<a href=”#”>Contact</a>
</div>
</div>

<h2>Fullscreen Overlay Nav Example</h2>
<p>Click on the element below to open the fullscreen overlay navigation menu.</p>
<span style=”font-size:30px;cursor:pointer” onclick=”openNav()”>&#9776; open</span>

<script>
function openNav() {
document.getElementById(“myNav”).style.display = “block”;
}

function closeNav() {
document.getElementById(“myNav”).style.display = “none”;
}
</script>

</body>
</html>


Previous


Next

Scroll to Top