Title: MenuDoc Sticky Header Menu on Scroll
Author: Jose Varghese
Published: <strong>June 19, 2026</strong>
Last modified: June 19, 2026

---

Search plugins

![](https://ps.w.org/menudoc-sticky-header-menu-on-scroll/assets/banner-772x250.
png?rev=3579157)

![](https://ps.w.org/menudoc-sticky-header-menu-on-scroll/assets/icon-128x128.gif?
rev=3579157)

# MenuDoc Sticky Header Menu on Scroll

 By [Jose Varghese](https://profiles.wordpress.org/josevarghese/)

[Download](https://downloads.wordpress.org/plugin/menudoc-sticky-header-menu-on-scroll.1.0.0.zip)

 * [Details](https://wordpress.org/plugins/menudoc-sticky-header-menu-on-scroll/#description)
 * [Reviews](https://wordpress.org/plugins/menudoc-sticky-header-menu-on-scroll/#reviews)
 *  [Installation](https://wordpress.org/plugins/menudoc-sticky-header-menu-on-scroll/#installation)
 * [Development](https://wordpress.org/plugins/menudoc-sticky-header-menu-on-scroll/#developers)

 [Support](https://wordpress.org/support/plugin/menudoc-sticky-header-menu-on-scroll/)

## Description

MenuDoc Sticky Header Menu on Scroll is a lightweight WordPress plugin that turns
any theme’s header or navigation menu into a sticky element as soon as the user 
starts scrolling. It works out of the box with most themes thanks to smart auto-
detection, and provides a full settings panel for fine-tuning every detail of the
sticky behavior, appearance, and visibility rules.

There is no need to touch any code. Install, activate, and the plugin immediately
starts working on your site.

#### Key Features

**Smart Header Auto-Detection**
 The plugin scans your page for common header selectors
and HTML structures used by popular WordPress themes, including full-site editing(
FSE/block) themes. It checks for semantic roles, well-known CSS classes and IDs,
and falls back gracefully to the outermost header tag or a nav element. In the vast
majority of cases the correct element is found without any configuration.

**Custom CSS Selector**
 If auto-detection selects the wrong element, you can switch
to Custom Selector mode and enter any valid CSS selector (for example `.site-header`,`#
masthead`, or `header.main-nav`) to target the exact element you want to stick.

**Scroll Trigger Distance**
 Control how far the user must scroll down the page 
before the header becomes sticky. The default is 0 px, meaning the header sticks
immediately. You can increase this value (up to 5000 px) so the header only sticks
after the user has scrolled past the hero or page banner, keeping the top of the
page clean.

**Top Spacing (Sticky Offset)**
 Add extra pixel space between the very top of the
viewport and the sticky header. This is useful when you want breathing room above
the header or when other fixed elements occupy part of the top of the screen.

**WordPress Admin Bar Awareness**
 When a user is logged in to WordPress, the admin
toolbar appears at the top of the page and the sticky header automatically positions
itself directly below it, with no overlap. This adjustment happens in real time 
and accounts for any height changes the admin bar makes at different screen widths.

**Hide on Scroll Down**
 Enable this option to slide the sticky header out of view
while the user is scrolling down the page. This reclaims screen real estate and 
gives readers more room to focus on content. When the user scrolls back up, the 
header smoothly returns to view.

**Show on Scroll Up**
 Works together with Hide on Scroll Down. When enabled, the
header reappears as soon as an upward scroll is detected. You can leave this off
if you only want the header to return after the user scrolls all the way back to
the top of the page.

**Push-Up Element**
 Specify a CSS selector for an element (such as a footer or 
an in-page banner) that will push the sticky header out of view as it scrolls into
the header’s position. This prevents the sticky header from overlapping important
content near the bottom of the page. The push-up movement is calculated in real 
time based on the element’s position relative to the header.

**Enter Animations**
 Choose an animation that plays once when the header first 
becomes sticky: – None: The header sticks instantly with no animation. – Fade In:
The header fades in from transparent to fully visible. – Slide Down: The header 
slides in from above the viewport, which provides the most polished and natural 
feel for most sites.

**Animation Speed**
 When an animation is selected, you can set the exact duration
in milliseconds (from 0 to 1000 ms) to match the pace and personality of your site.

**Drop Shadow**
 Adds a soft box-shadow beneath the sticky header to visually separate
it from the page content below. The shadow color and opacity are both configurable
so you can match your design exactly. The shadow transitions in smoothly as the 
header sticks.

**Custom Sticky Background Color**
 If your header uses a transparent background
when it is in its normal position, enabling this option lets you set a solid background
color that is applied only when the header is sticky. This is a common pattern on
sites with a large hero image beneath a transparent navigation bar.

**Responsive Breakpoint Control**
 Two independent width controls let you disable
the sticky behavior at specific screen sizes: – Disable Below Width: Enter a pixel
value and the sticky header will not activate on screens narrower than that width.
Set to 0 to enable on all screen sizes. Useful if your mobile header uses a different
layout or a hamburger menu that should not be sticky. – Disable Above Width: Enter
a pixel value and the sticky header will not activate on screens wider than that
value. Set to 0 to enable on all screen sizes.

**Configurable Z-Index**
 Set the CSS z-index value for the sticky header directly
from the settings page. The default is 1000, which works for most themes. If another
plugin or theme element appears on top of your sticky header, increase this value
until the header sits on top.

**CSS State Classes**
 When enabled, the plugin adds the class `mshms-is-sticky`
to the header element whenever it is in its sticky state, and `mshms-not-sticky`
when it is not. These classes make it easy for developers and theme customizers 
to write CSS that targets each state independently, for example to change the logo
size, font color, or padding when the header is sticky.

**Display On (Page Type Control)**
 Choose exactly which types of pages the sticky
header should be active on. The available options are: – Home Page – Blog / Posts
Page – Posts (single post pages) – Pages (single page entries) – Archives (category,
tag, date, and author archives) – Search Results – 404 Page – Attachments – Any 
public custom post types registered on your site

**Debug Mode**
 Displays a small overlay on the frontend of your site showing the
currently detected header element and its CSS selector path, and logs detailed messages
to the browser console. Use this mode when setting up the plugin or troubleshooting
detection issues. Turn it off before going live.

**No Coding Required**
 All settings are controlled from the WordPress admin panel
under Settings – Sticky Header Menu. There is no need to edit any theme files, add
custom code snippets, or write PHP. The plugin loads its scripts only on pages where
the sticky header is enabled and only when the plugin itself is active.

**Cache Compatibility**
 When you save settings the plugin automatically clears 
caches for the most popular WordPress caching solutions, including WP Rocket, LiteSpeed
Cache, WP Super Cache, W3 Total Cache, WP Fastest Cache, Cache Enabler, Hummingbird,
SiteGround Optimizer, Breeze, and FlyingPress.

## Screenshots

[⌊Frontend - Sticky header with slide-down animation active on the default WordPress
theme Twenty Twenty Five, which is not having a sticky menu.⌉⌊Frontend - Sticky 
header with slide-down animation active on the default WordPress theme Twenty Twenty
Five, which is not having a sticky menu.⌉[

Frontend – Sticky header with slide-down animation active on the default WordPress
theme Twenty Twenty Five, which is not having a sticky menu.

[⌊Settings page - Detection and behavior options.⌉⌊Settings page - Detection and
behavior options.⌉[

Settings page – Detection and behavior options.

[⌊Settings page - Appearance and animation options.⌉⌊Settings page - Appearance 
and animation options.⌉[

Settings page – Appearance and animation options.

[⌊Settings page - Responsive and advanced options.⌉⌊Settings page - Responsive and
advanced options.⌉[

Settings page – Responsive and advanced options.

## Installation

 1. Upload the `menudoc-sticky-header-menu-on-scroll` folder to the `/wp-content/plugins/`
    directory, or install the plugin directly from the WordPress plugin repository 
    via Plugins – Add New.
 2. Activate the plugin through the Plugins menu in WordPress.
 3. Go to Settings – Sticky Header Menu to review and adjust the configuration. The
    plugin works with default settings for most themes.

## FAQ

### Will this work with my theme?

Yes, in almost all cases. The plugin uses a prioritised list of selectors and HTML
structures that covers the vast majority of WordPress themes, including classic 
themes, popular page builder themes, and full-site editing (block) themes built 
with the WordPress Site Editor.

### What if the wrong element becomes sticky?

Switch the detection mode to Custom Selector and enter the CSS selector for your
exact header element. You can find the correct selector by inspecting the header
in your browser’s developer tools.

### Does the plugin add any front-end overhead when I disable it?

No. When the plugin is disabled from the settings page, no CSS or JavaScript is 
loaded on the front end at all.

### Can I style the sticky header differently with CSS?

Yes. Enable the CSS State Classes option and use `.mshms-is-sticky` in your custom
CSS to target the header in its sticky state. You can apply any CSS property: different
background, reduced padding, smaller logo via a child selector, and so on.

### Does it work with transparent headers?

Yes. Enable the Custom Background option and choose a solid background color. That
color is applied only when the header becomes sticky, so the header can remain transparent
at the top of the page and switch to a solid background once the user scrolls.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“MenuDoc Sticky Header Menu on Scroll” is open source software. The following people
have contributed to this plugin.

Contributors

 *   [ Jose Varghese ](https://profiles.wordpress.org/josevarghese/)

[Translate “MenuDoc Sticky Header Menu on Scroll” into your language.](https://translate.wordpress.org/projects/wp-plugins/menudoc-sticky-header-menu-on-scroll)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/menudoc-sticky-header-menu-on-scroll/),
check out the [SVN repository](https://plugins.svn.wordpress.org/menudoc-sticky-header-menu-on-scroll/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/menudoc-sticky-header-menu-on-scroll/)
by [RSS](https://plugins.trac.wordpress.org/log/menudoc-sticky-header-menu-on-scroll/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 1.0.0

 * Initial release of MenuDoc Sticky Header Menu on Scroll.
 * Smart auto-detection of the header element using a prioritised selector list 
   covering classic themes, page builder themes, and full-site editing block themes.
 * Custom CSS selector mode for manual header targeting when auto-detection is not
   suitable.
 * Scroll trigger distance setting to control how far the user must scroll before
   the header sticks.
 * Top spacing (sticky offset) setting to add pixel space between the top of the
   viewport and the sticky header.
 * WordPress admin bar awareness that automatically positions the sticky header 
   below the admin toolbar on logged-in pages.
 * Hide on Scroll Down option that slides the header out of view while the user 
   scrolls down, reclaiming screen space.
 * Show on Scroll Up option that brings the header back into view as soon as the
   user scrolls upward.
 * Push-Up Element feature that smoothly slides the sticky header out of view when
   a specified page element (such as a footer) scrolls into its area.
 * Three entry animations when the header first becomes sticky: None, Fade In, and
   Slide Down.
 * Configurable animation speed in milliseconds.
 * Drop Shadow option with configurable shadow color and opacity.
 * Custom Sticky Background Color option for themes that use a transparent header.
 * Responsive Disable Below Width control to turn off the sticky header on narrow
   screens.
 * Responsive Disable Above Width control to turn off the sticky header on wide 
   screens.
 * Configurable z-index to control stacking order relative to other fixed elements.
 * CSS State Classes that add mshms-is-sticky and mshms-not-sticky to the header
   element for custom CSS targeting.
 * Debug Mode with a visual frontend overlay and browser console logging to assist
   with troubleshooting.
 * Display On controls to enable the sticky header per page type: Home Page, Blog
   Page, Posts, Pages, Archives, Search Results, 404 Page, Attachments, and custom
   post types.
 * Automatic cache clearing on settings save for WP Rocket, LiteSpeed Cache, WP 
   Super Cache, W3 Total Cache, WP Fastest Cache, Cache Enabler, Hummingbird, SiteGround
   Optimizer, Breeze, and FlyingPress.
 * Zero front-end scripts or styles loaded when the plugin is disabled.

## Meta

 *  Version **1.0.0**
 *  Last updated **13 hours ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 5.5 or higher **
 *  Tested up to **7.0**
 *  PHP version ** 7.4 or higher **
 * Tags
 * [fixed header](https://wordpress.org/plugins/tags/fixed-header/)[sticky header](https://wordpress.org/plugins/tags/sticky-header/)
   [sticky menu](https://wordpress.org/plugins/tags/sticky-menu/)[sticky navigation](https://wordpress.org/plugins/tags/sticky-navigation/)
 *  [Advanced View](https://wordpress.org/plugins/menudoc-sticky-header-menu-on-scroll/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/menudoc-sticky-header-menu-on-scroll/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/menudoc-sticky-header-menu-on-scroll/reviews/)

## Contributors

 *   [ Jose Varghese ](https://profiles.wordpress.org/josevarghese/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/menudoc-sticky-header-menu-on-scroll/)