How can I lock the scrolling of the body when the burger menu is clicked in Webflow and ensure that it unlocks when the menu is closed?

TL;DR
  • Access Project Settings and go to the Custom Code tab to add CSS and JavaScript.
  • Add CSS .lock-scroll { overflow: hidden; } in the Head Code to prevent scrolling.
  • Add JavaScript before the </body> tag to toggle the lock-scroll class on menu click.
  • Replace .menu-button-class with your menu button's class, publish, and test the changes.

To lock and unlock the scrolling of the body when a burger menu is clicked in Webflow, you'll need to use some custom CSS and JavaScript interactions. Here’s how you can do it:

1. Access Project Settings

  • Go to Project Settings in your Webflow dashboard.
  • Navigate to the Custom Code tab.

2. Add Custom CSS

  • In the Head Code section, add the following CSS:  

  ​body.lock-scroll { overflow: hidden; }

  • This CSS class will prevent the body from scrolling when applied.

3. Add Custom JavaScript

  • Go to the Before </body> tag section in the Custom Code tab.
  • Add the following JavaScript to control the menu interactions:

document.addEventListener('DOMContentLoaded', function () {
  var menuButton = document.querySelector('.menu-button-class'); // Replace with your menu button class
  var body = document.body;

  menuButton.addEventListener('click', function () {
    if (body.classList.contains('lock-scroll')) {
      body.classList.remove('lock-scroll'); // Unlock scrolling
    } else {
      body.classList.add('lock-scroll'); // Lock scrolling
    }
  });
});

  • Replace .menu-button-class with the actual class name of your burger menu button.

4. Publish and Test

  • Publish your website to see the changes in effect.
  • Open your website and test clicking the burger menu to ensure the scrolling locks and unlocks correctly.

Summary

To lock and unlock body scrolling with a burger menu click in Webflow, use a combination of custom CSS and JavaScript. Add a lock-scroll class to hide overflow and control this class with JavaScript based on menu interactions.

Rate this answer

Other Webflow Questions