How can I prevent the body from scrolling when the mobile menu overlay is active in Webflow?

TL;DR
  • Open Navigator in Webflow, select the mobile menu overlay, go to Interactions, and set Element trigger for Mouse click.
  • Add JavaScript Embed to disable body scroll on menu open and enable it on menu close.
  • Preview, test, and publish to ensure functionality across devices.

To prevent the body from scrolling when a mobile menu overlay is active in Webflow, follow these steps to ensure a smooth interaction experience for users.

​

1. Open Mobile Menu Interaction Settings

  • Go to the Navigator in Webflow Designer.
  • Select the mobile menu overlay element that appears when activated.

​

2. Create an Interaction for Menu Activation

  • Click on Interactions at the top right of the Webflow Designer.
  • Choose Element trigger and select Mouse click (or the interaction you have set for menu activation).
  • Create a new interaction and name it appropriately.

​

3. Disable Body Scroll on Menu Open

  • In the first click action of the interaction, add a JavaScript Embed.
  • Insert this inline script: document.body.style.overflow = 'hidden';.
  • This line of code will disable scrolling when the menu is activated.

​

4. Enable Body Scroll on Menu Close

  • Go back to the Interactions panel.
  • On the second click action (if using a toggle), add another JavaScript Embed.
  • Insert this inline script: document.body.style.overflow = '';.
  • This resets the overflow style, enabling scrolling once the menu is closed.

​

5. Preview and Test

  • Use the Preview mode in Webflow to ensure the scroll behavior functions correctly.
  • Open and close the mobile menu to confirm that the body scroll is disabled when the menu is open and re-enabled when it closes.

​

6. Publish Changes

  • Once verified, publish the site to make changes live.
  • Check on a mobile device to ensure everything operates as intended across different devices.

​

Summary

To prevent scroll when the mobile menu is open in Webflow, use JavaScript to modify the body's overflow property. Disable scrolling on menu activation and re-enable it upon closure to ensure a seamless user experience.

Rate this answer

Other Webflow Questions