Elementor Amazing Off Canvas Navigation Menu Tutorial

Elementor Amazing Off Canvas Navigation Menu Tutorial

Element.How also offers premium tutorials! Check them here:

Table of Contents

In this tutorial I'm going to show you how to create an amazing Elementor off canvas menu, that works for desktop, tablet and mobile.

You will learn how to replicate this awesome Elementor off canvas navigation menu:

Visit the demo page directly.

Here it is on a production website:

Elementor Amazing Off Canvas Navigation Menu Tutorial 1


  • Full Design Flexibility: The off canvas content that shows up is an Elementor Container Template, that you can design however you wish
  • Make It Your Own: Adjust the colors of everything as you wish, as well as other styles
  • Awesome Design: Wow your visitors and clients with this great design
  • Accessible: Keyboard and screen reader ready
  • Made For Hello Theme: Supports Hello Theme, might not work for other themes

Let's get started!

First, let's copy paste the required code in your header template

This is a premium tutorial. Purchase access to unlock the full tutorial.

Access tutorial

$39/one time Purchase access


  • Gain Access to This TutorialUnlock complete access to the current tutorial: Elementor Amazing Off Canvas Navigation Menu Tutorial
  • Future UpdatesYou will get access to all future updates to this tutorial.
  • Enjoy Unlimited UsageUse on as many of your own sites or your clients sites as you wish.

    Note that reselling or redistributing is not permitted.

Access everything

$299/one time Purchase All Access


  • Unlock every premium tutorial on Element.howGet access to the entire library of premium tutorials on Element.how
    Preview premium tutorials
  • Get access to the CSS course for Elementor usersAccess the complete 14 HTML chapters, 30 CSS chapters and 7 Elementor Projects.Learn more
  • Simple CSS Grid For ElementorAn Elementor Addon to Create Awesome Grid Layouts in a Single Click for Containers, Galleries and Loop Grid. Learn more
  • free extra: ShapeDividers.com Premium AccessLifetime Premium Access to ShapeDividers.comVisit ShapeDividers.com
  • 30 day money backNo questions asked money back. Not what you expected? Get a refund.
  • One-time payment of only $299No hidden fees or subscriptions.

    Sales taxes added where applicable.
  • Great supportGet help when you need it. Support includes getting things working as intended.

    Support excludes customization work.
  • Lifetime access to everything Element.howThe price reflects what is currently available on Element.how. All future updates are included, but none are promised. You pay for what is available now, and the rest is a sweet extra.

    I will say that it is definitely my intention to keep adding tutorials to Element.how.
* All prices are USD. Applicable taxes will be charged at checkout. Have a question? See the FAQ or email me.

Element.how also provides premium tutorials showing awesome advanced designs, check them out here.

Looking for something else? Search across 2737 Elements right here:

Checkout the Elementor Addon Finder directly

26 Responses

  1. Hi Maxime.

    So it all works great, except I encountered something unwanted that happens many times on mobile. As soon as I open the menu and scroll, my header disappears on the "page preview". When I close the menu and go back to the page, the Header went to the left and I can see 30% of it. To fix it I have to flip the phone several times so the header snaps into it's place.

    This bug can be replicated also on Desktop, open the menu, then zoom out and in again(ctrl + mouse scroll), and the header overflows to the left side.

    Can you help me?

    1. PS: Hello Theme and have 100%width on the header. I do have it sticky and changes the color on scroll with just css (and offset effects), tried even with Template Headers from Elementor Pro but to no avail.

      1. Greetings Joao!

        Please share your URL with me, I will have a look.

        Essentially it is because your header's width and/or position is calculated from JavaScript, for one reason or another. I will need your URL to find out the reason.

  2. Hello maxime,

    That works great for me.
    I still have an issue. If I have a sub-menu, I can't get the sub-menu to deploy below the main entry; it's out of place and out of the frame. In fact, I'd have to be able to apply the elementor widget option Content>Layout > Mobile drop-down menu > Threshold > Desktop for this to work, but it's obviously not planned. Do you have a workaround? Here's the url for the recipe site: https://542c-14ae9e63eb87.wptiger.fr/
    Thank you in advance,


    1. Hey Olivier!

      Here is what you can add, hopefully it will work for you!

      Add this to the nav menu element Custom CSS field:

      selector .elementor-nav-menu--dropdown {
          position: static;
          margin: 0!important;


  3. If you right click > inspect, you will see that the

    1. Pretty well! I added extra instructions to add an aria label to the nav toggle just now, for even better A11Y.

      Keep in mind it will also depend on the elements you will be adding in your navigation template. Ideally, these would be well structured nav elements like the WordPress Menu element.


    1. Hey Galit!

      I just had a good look at this, and I can't find out the issue, or replicate it on my end.

      I believe it might be due to either the preloader, or your smooth scrolling solution. Try disabling one or both to see if that solves it.


      1. Hi Maxime
        First of all, thank you very much for the response.
        I tried to disable the two plugins responsible for preloader and smooth scrolling and it didn't help. Do you have another suggestion?

  4. Greetings Galit,

    It could be quite complex to debug, so I'd need access to help any further... From the front end, I can't quite make out what the issue is.

    If possible, please email me the login info at maxime@element.how

  5. Hello,

    I bought your training, but it doesn't work for me, don't work in php 8.3 ?
    I followed all the instructions but the problem starts quite quickly, you say "Importantly, you might notice that after giving it the ID, it's background color changed.". No color change for me?... No consideration of the code then?

    In the end the "Container template" loads directly before the header in 100% width, the button has no effect.

    Help please?

    1. Greetings Antonin!

      Have you fixed this? From the URL you shared in the other tutorial, it all seemed to be working fine.


  6. Hi, i've have an anchor on the Container that appear when it's clicked, but when i click the anchor, the side menu must close and scroll to the anchor on the page, how can i fix this?

    1. Greetings Dev!

      I just updated the code to manage same page anchor links. Please update your code snippet, except the line that you edited with your template shortcode.


  7. Hi Max, amazing tut as always. Do you think that somehow the website could resize but not move as much to the left? I don't want the logo to disappear (at least on desktop)

    1. Hey Trevor!

      Add this CSS for this:

      @media (min-width: 1025px) {
          html #contentWrapper {
              transform-origin: 0% 50%;
          html .fancyNavOpened #contentWrapper {
              transform: scale(0.604);

      It will only scale the page down instead of moving it left. Desktop only, tablet and mobile stay the same as there just isn't enough space there to only scale down.


      1. Thanks again! It works really well.
        Do you know why I'm seeing the "container template" on every new template that I'm editing with Elementor?

    2. Hey Trevor!

      Try this. Directly below this line, in the PHP snippet:

      function setupFancyNav() {

      Add this:

      if (\Elementor\Plugin::$instance->editor->is_edit_mode() || \Elementor\Plugin::$instance->preview->is_preview_mode() ) {
      return; /* don't run while in the editor */

      Let me know if that works!


      1. I think it worked, but I'm seeing it on another published pages 🙁 is there any way that the container could be included on the same template and not by an external container?

    3. Greetings Trevor!

      Where did you add the CSS?

      On what page are you seeing it? Maybe pages that don't load the CSS?

      Try moving the CSS somewhere global that will load on all pages... Then you should be fine.

      Let me know!


Leave a Reply