ons-splitter-content

The <ons-splitter-content> element is used as a child element of <ons-splitter>. It contains the main content of the page while <ons-splitter-side> contains the list.

Tutorial

The Splitter

A menu can be added using the <ons-splitter>.

This element has several customization options. For small devices it can be used to create a swipeable menu but it’s also possible to customize it in order to automatically display a column layout on devices with larger screens.

To use it you need to add the <ons-splitter-content> and <ons-splitter-side> elements as children. The <ons-splitter-content> contains the main content and the <ons-splitter-side> is used for the menu.

Main content

The main content is contained inside the <ons-splitter-content>. Every Splitter must contains exactly one <ons-splitter-content>.

There are two ways to define the initial HTML. One way is to put the page inside the element:

<ons-splitter-content>
  <ons-page>
    ...
  </ons-page>
</ons-splitter-content>

Using templates

Another way is to use the page attribute to load the content from a <template> element:

<template id="page.html">
</template>

...

<ons-splitter>
  <ons-splitter-content page="page.html">
  </ons-splitter-content>
</ons-splitter>

Loading pages dynamically

In order to change the content of the <ons-splitter-content> you can use the load(page, options) method:

var content = document.querySelector('ons-splitter-content');

// Switch to the Settings page.
content.load('settings.html');

Normally this method will be called when the user clicks on one of the items in the menu.

Side elements

The <ons-splitter-side> supports several attributes that control the behavior of the menu.

The “swipeable” attribute

This attribute must be defined to enable opening and closing the menu by swiping.

The “collapse” attribute

The menu supports two modes: “collapse” and “split” mode. When the menu is collapsed it will be hidden from view and only visible if the user swipes or the open() method is called.

In “split” mode the menu is displayed as a column on the side of the <ons-splitter-content> element.

The value of the collapse attribute defines when it should be in either mode conditionally. If you set the value to "portrait“ it will be collapsed when the device is in portrait mode. It also supports a media query.

You can try changing or removing the collapse attribute from the <ons-splitter-side> to see it in action.

The “side” attribute

This defines which side the menu is attached to. It supports the values "left" and "right". It’s possible to define one menu on each side of the screen.

See also

Attributes are added directly to the element. You can do this in HTML or JS.

HTML: <ons-splitter-content someAttribute="true" anotherAttribute><ons-splitter-content>
JS: document.querySelector('ons-splitter-content').setAttribute('someAttribute', 'true')

Name Type Description
page String

The url of the content page. If this attribute is used the content will be loaded from a <template> tag or a remote file. It is also possible to put <ons-page> element as a child of the element.

Optional.

Properties are accessed on the element through JS, and should be get and set directly. For example: document.querySelector('ons-splitter-content').page.

Name Description
page The page to load in the splitter content.
pageLoader Page element loaded in the splitter content.

These methods are called directly on the DOM element. Get a reference to the element in JS, and the methods below will be available to call on it. For example: document.querySelector('ons-splitter-content').someMethod().

Signature Description
load(page, [options]) Show the page specified in page in the content.
load(page, [options]): Promise

Show the page specified in page in the content.

Returns: Resolves to the new <ons-page> element

Parameters
Name Type Description
page, String Page URL. Can be either an HTML document or an <template> id.
options Object
options.callback Function

Need Help?

If you have any questions, use our Community Forum or talk to us on Discord chat. The Onsen UI team and your peers in the community will work together to help solve your issues.

For bug reports and feature requests use our GitHub Issues page.