Zoom & Push Navigation With jQuery And CSS3

File Size: 2.39 KB
Views Total: 4244
Last Update:
Publish Date:
Official Website: Go to website
License: MIT
   
Zoom & Push Navigation With jQuery And CSS3

A pretty cool off-canvas navigation concept that pushes and zooms out the main content to toggle the navigation menu.

Written in pure HTML/CSS/CSS3. jQuery is used only to open/close the navigation menu by toggling a class name.

How to use it:

1. Create the off-canvas navigation.

<nav>
  <ul>
    <li>Home</li>
    <li>Categories</li>
    <li>Jobs</li>
    <li>About</li>
    <li>Contact</li>
  </ul>
</nav>

2. Insert your main content into a container.

<div class="container">
  main content here
</div>

3. Create a hamburger button to toggle the off-canvas navigation.

<div class="hamburger">
  <span></span>
  <span></span>
  <span></span>
</div>

4. The main CSS/CSS3 styles.

nav {
  position: fixed;
  height: 100%;
  width: 65%;
}

nav::before {
  content: '';
  display: inline-block;
  width: 0;
  height: 100%;
  vertical-align: middle;
}

nav > ul {
  width: 80%;
  display: inline-block;
  vertical-align: middle;
}

nav > ul > li {
  display: block;
  text-transform: uppercase;
  line-height: 2;
  font-size: .8rem;
  padding-left: 30%;
}

.hamburger {
  left: 1rem;
  top: 1rem;
  width: 1.5rem;
  height: .7rem;
  position: fixed;
  z-index: 2;
  cursor: pointer;
}

.hamburger > span {
  display: block;
  background-color: #262626;
  height: 20%;
  margin-bottom: 20%;
}

.container {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: #fafafa;
  color: #262626;
  padding: 4rem;
  overflow: auto;
  transition: .2s ease;
}

5. Optimize the off-canvas navigation in different orientations.

@media screen and (orientation: portrait) {
  .container {
    padding: 4rem 1rem;
  }
}
.container a {
  color: #00c7be;
}
.container > p {
  padding-bottom: 1em;
}
.container > h4 {
  margin: 1em 0;
}

@media screen and (orientation: portrait) {
  nav.active + .container {
    transform: translateX(55%) scale(0.8);
    box-shadow: 0 0 30px 5px rgba(38, 38, 38, 0.3);
  }
}
@media screen and (orientation: landscape) {
  nav.active + .container {
    transform: translateX(35%) scale(0.8);
    box-shadow: 0 0 30px 5px rgba(38, 38, 38, 0.3);
  }
}

This awesome jQuery plugin is developed by GioAc96. For more Advanced Usages, please check the demo page or visit the official website.