Effects & DesignElementor

How To Make Creative Navigation Menu In Elementor Free

Tools and Links Used

Hostinger Fast, beginner friendly WordPress hosting.
Get Hosting
Elementor The free page builder this tutorial is built with.
Get Elementor
Elementor Pro The Pro upgrade used throughout this tutorial.
Get Elementor Pro
Project Files Download the resources used in this tutorial.
Download Files
Kitpapa Ready made Elementor template kits.
Get Templates
Kitninja eCommerce Elementor template kits.
Get Templates

Prompt Used in This Tutorial

To display the menu vertically, apply the following CSS
<style>
.menu .elementskit-navbar-nav {
    display: flex !important;
    flex-direction: column;
    flex-wrap: nowrap !important;
    height: 100% !important;
}

</style>
To display the menu vertically, apply the following CSS Class
menu
Nav Box Style CSS
.nav-area {
  overflow: hidden;
  height: 0;
  opacity: 0;
  transition: height 0.4s ease, opacity 0.4s ease;
}
Nav Box Style CSS Class
nav-area
To hide the toggle menu on mobile devices, apply this CSS
.menu .elementskit-menu-container {
    position: static !important;
}

.menu .elementskit-nav-identity-panel {
    display: none !important;
}

.menu .elementskit-menu-overlay{
    display: none;
}

.menu button.elementskit-menu-hamburger.elementskit-menu-toggler {
    display: none;
}
Creative Navigation Menu JS Code
<script>
  // JS for menu toggle
  const trigger = document.querySelector('.nav-trigger');
  const nav = document.querySelector('.nav-area');

  let isOpen = false;

  trigger.addEventListener('click', (event) => {
    event.stopPropagation(); // Prevent the click from bubbling to document
    toggleNav();
  });

  document.addEventListener('click', (event) => {
    if (isOpen && !nav.contains(event.target) && !trigger.contains(event.target)) {
      closeNav();
    }
  });

  nav.addEventListener('click', (event) => {
    event.stopPropagation(); // Prevent closing if clicking inside nav
  });

  function toggleNav() {
    const images = nav.querySelectorAll('img');

    const imagePromises = Array.from(images).map(img => {
      if (img.complete && img.naturalHeight !== 0) return Promise.resolve();
      return new Promise(resolve => img.onload = resolve);
    });

    Promise.all(imagePromises).then(() => {
      // Temporarily set height to auto to get scrollHeight
      nav.style.height = 'auto';
      const fullHeight = nav.scrollHeight + 'px';

      if (isOpen) {
        nav.style.height = fullHeight;
        nav.offsetHeight; // force reflow
        nav.style.transition = 'height 0.4s ease, opacity 0.4s ease';
        nav.style.height = '0px';
        nav.style.opacity = 0;
      } else {
        nav.style.height = '0px';
        nav.style.opacity = 0;
        nav.offsetHeight;

        nav.style.transition = 'height 0.4s ease, opacity 0.4s ease';
        nav.style.height = fullHeight;
        nav.style.opacity = 1;
      }

      isOpen = !isOpen;
    });
  }

  function closeNav() {
    const fullHeight = nav.scrollHeight + 'px';
    nav.style.height = fullHeight;
    nav.offsetHeight;
    nav.style.transition = 'height 0.4s ease, opacity 0.4s ease';
    nav.style.height = '0px';
    nav.style.opacity = 0;
    isOpen = false;
  }

  nav.addEventListener('transitionend', (e) => {
    if (isOpen && e.propertyName === 'height') {
      nav.style.height = 'auto';
    }
  });
</script>

Get Your FREE Freelancing Roadmap

Stop hopping between tutorials. Grab the Freelancing Mastery Handbook to learn how to choose a skill, build your foundation, find clients, and confidently start your freelancing journey.

Free eBook Download

Related Tutorials

From learning the right skills to building a stronger digital presence, we help you turn ideas into practical, professional results.

Vibe Code a REAL Animated WordPress Website with Claude + Elementor

21.8K views

View Tutorial

Vibe Coding Full Course for Beginners – Build & Launch a Real SaaS

3.3K views

View Tutorial

Edit Videos with ChatGPT Codex — Raw Clips to Finished Reel

3.4K views

View Tutorial

Browse All Tutorials