no-scroll
class on the body
with overflow: hidden
to block scrolling.no-scroll
class based on whether the navigation menu is open or closed.You're trying to disable page scroll when your navigation menu is open, but your current method may not handle opening and closing states properly due to class targeting issues. Here's how to correctly set up scroll control behavior in Webflow using custom code.
no-scroll
Class to the body
body
called no-scroll
.<script> const menuButton = document.querySelector('.your-menu-button-class'); // Update with your actual class const navMenu = document.querySelector('.your-menu-class'); // Update with your actual class menuButton.addEventListener('click', function () { // Check if the navMenu is open by checking for 'is--open' class (Webflow default), or use your own const isOpen = navMenu.classList.contains('w--open'); // or 'open' or whatever class Webflow adds on open if (!isOpen) { document.body.classList.add('no-scroll'); } else { document.body.classList.remove('no-scroll'); } });</script>
.your-menu-button-class
and .your-menu-class
) to match the actual class names used in your Navigation element and toggle button.w--open
to open dropdowns and nav menus. You may inspect the live preview to confirm exact behavior or use your own custom toggle class.setTimeout
or observe the DOM using a MutationObserver. Here's a better version using MutationObserver:<script> const navMenu = document.querySelector('.your-menu-class'); const observer = new MutationObserver(mutations => { mutations.forEach(mutation => { if (mutation.attributeName === 'class') { const isOpen = navMenu.classList.contains('w--open'); if (isOpen) { document.body.classList.add('no-scroll'); } else { document.body.classList.remove('no-scroll'); } } }); }); observer.observe(navMenu, { attributes: true });</script>
To prevent scrolling when your navigation menu is open in Webflow:
no-scroll
class with overflow hidden.<body>
when the menu opens/closes.This method works regardless of class name duplication and handles scroll lock reliably.