Off-canvas introduction

The "offCanvas" add-on enables the menu to be opened as an off-canvas menu, it is turned on by default. To turn it off or to customize how it works, change the offCanvas options and configuration.

<script>
    document.addEventListener(
        "DOMContentLoaded", () => {
            new Mmenu( "#menu", {
                offCanvas: {
                    // off-canvas options
                }
            }, {
                offCanvas: {
                    // off-canvas configuration
                }
            });
        }
    );
</script>

Have a look at the on- and off-canvas page for more information.

Example

Give it a go, change the options below and see how it affects the menu.

  • Create an on-canvas menu.
<script>
    document.addEventListener(
        "DOMContentLoaded", () => {

        }
    );
</script>

Options for the "offCanvas" add-on

Option Datatype Default value Description
offCanvas
{
use Boolean true Whether or not to enable the offCanvas add-on.
}

Configuration for the "offCanvas" add-on

Option Datatype Default value Description
offCanvas
{
clone Boolean false Whether or not the menu should be cloned (and the original menu kept intact).
menu
{
insertMethod String "prepend" How to insert the menu to the DOM.
Possible values: "prepend" and "append".
insertSelector String "body" Query selector for the element the menu should be inserted in.
}
page
{
nodetype String "div" The node-type of the page.
selector String "body > " + offCanvas.page.nodetype Query selector for the page.
noSelector String[] [] Array of query selectors to exclude from the page.
}
screenReader
{
closeMenu String "Close menu" Screenreader text for buttons that close the menu.
openMenu String "Open menu" Screenreader text for buttons that open the menu.
}
}

CSS variables for the "offCanvas" add-on

Variables Datatype Default value Description
Sizes
--mm-size CSS percentage 80% The width or height of the menu.
--mm-min-size CSS number 240px The minimum width or height of the menu.
--mm-max-size CSS number 440px The maximum width or height of the menu.

API methods for the "offCanvas" add-on

Method( arguments ) Datatype Default value Description
close Invoke this method to close the menu.
open Invoke this method to open the menu.
setPage Invoke this method to tell the plugin what HTML element it should consider to be the "page".
(
page HTMLElement The HTML element for the "page".
)

API hooks for the "offCanvas" add-on

close:before
Invoked before anything when closing the menu.
close:after
Invoked after everything when closing the menu.
open:before
Invoked before anything when openning the menu.
open:after
Invoked after everything when opening the menu.
setPage:before
Invoked before setting the page element.
setPage:after
Invoked after setting the page element.

Next add-on:
Scroll bug fix