Skip to content
Skip to content

Switcher

Dynamically transition through different content panes


Usage

The switcher component consists of a number of toggles and their related content items. Add the data-module="Switcher" attribute to the element which contains the toggles. By default, it will assume that the next sibling element is the target for the toggles.

By default, the switcher works by linking the indexes of the toggle items and target items. So you need to make sure both are in the same order.

Typically the switcher is combined with other components, some of which will be shown here.

Section 1

Lorem ipsum dolor sit amet, consectetur adipisicing elit. Neque optio, sapiente. Aut incidunt ipsam minima minus similique tempore!

Section 2

Lorem ipsum dolor sit amet, consectetur adipisicing elit. Neque optio, sapiente. Aut incidunt ipsam minima minus similique tempore!

Section 3

Lorem ipsum dolor sit amet, consectetur adipisicing elit. Neque optio, sapiente. Aut incidunt ipsam minima minus similique tempore!

<div class="c-menu c-menu--attached" data-module="Switcher">
  <a href="#" class="c-menu__item c-menu__link">Section #1</a></li>
  <a href="#" class="c-menu__item c-menu__link">Section #2</a></li>
  <a href="#" class="c-menu__item c-menu__link">Section #3</a></li>
</div>

<div>
  <section class="c-panel c-panel--box">
    <h3>Section 1</h3>
    ...
  </section>
  <section class="c-panel c-panel--box">
    <h3>Section 2</h3>
    ...
  </section>
  <section class="c-panel c-panel--box">
    <h3>Section 3</h3>
    ...
  </section>
</div>

Options

Target

If you are not sure that the target items will come directly after the toggler items or you just want to be sure (probably best), you can specifically the target using data-options='{"target" : "#switcher-content1"}.


Section 1

Lorem ipsum dolor sit amet, consectetur adipisicing elit. Neque optio, sapiente. Aut incidunt ipsam minima minus similique tempore!

Section 2

Lorem ipsum dolor sit amet, consectetur adipisicing elit. Neque optio, sapiente. Aut incidunt ipsam minima minus similique tempore!

Section 3

Lorem ipsum dolor sit amet, consectetur adipisicing elit. Neque optio, sapiente. Aut incidunt ipsam minima minus similique tempore!

<div class="c-menu c-menu--attached" data-module="Switcher" data-options='{"target":"#switcher-content1"}>
  <a href="#" class="c-menu__item c-menu__link">Section #1</a></li>
  <a href="#" class="c-menu__item c-menu__link">Section #2</a></li>
  <a href="#" class="c-menu__item c-menu__link">Section #3</a></li>
</div>

<hr>

<div id="switcher-content1">
  <section class="c-panel c-panel--box">
    <h3>Section 1</h3>
    ...
  </section>
  <section class="c-panel c-panel--box">
    <h3>Section 2</h3>
    ...
  </section>
  <section class="c-panel c-panel--box">
    <h3>Section 3</h3>
    ...
  </section>
</div>

Multiple targets

You can also switch multiple targets by passing in an array data-options='{"target" : ["#switcher-content2" , "#switcher-content3"]}.

Section 1

Lorem ipsum dolor sit amet, consectetur adipisicing elit. Neque optio, sapiente. Aut incidunt ipsam minima minus similique tempore!

Section 2

Lorem ipsum dolor sit amet, consectetur adipisicing elit. Neque optio, sapiente. Aut incidunt ipsam minima minus similique tempore!

Section 3

Lorem ipsum dolor sit amet, consectetur adipisicing elit. Neque optio, sapiente. Aut incidunt ipsam minima minus similique tempore!

Section 1

Lorem ipsum dolor sit amet, consectetur adipisicing elit. Neque optio, sapiente. Aut incidunt ipsam minima minus similique tempore!

Section 2

Lorem ipsum dolor sit amet, consectetur adipisicing elit. Neque optio, sapiente. Aut incidunt ipsam minima minus similique tempore!

Section 3

Lorem ipsum dolor sit amet, consectetur adipisicing elit. Neque optio, sapiente. Aut incidunt ipsam minima minus similique tempore!

Hide

You can toggle the hidden property on the target panes by setting data-option='{"hide":true}'. This results in 'Tab' like functionality.

ARIA Accessibility

When this method is activated, the module also add relevant ARIA rules to enhance accessibility. (Ref: 24 ways: How tabs should work)

Section 1

Lorem ipsum dolor sit amet, consectetur adipisicing elit. Neque optio, sapiente. Aut incidunt ipsam minima minus similique tempore!

Section 2

Lorem ipsum dolor sit amet, consectetur adipisicing elit. Neque optio, sapiente. Aut incidunt ipsam minima minus similique tempore!

Section 3

Lorem ipsum dolor sit amet, consectetur adipisicing elit. Neque optio, sapiente. Aut incidunt ipsam minima minus similique tempore!

Active index

You set which pane is initially active by setting data-options='{"activeIndex":1}', which results in the second tab being initially active (zero based index).

Section 1

Lorem ipsum dolor sit amet, consectetur adipisicing elit. Neque optio, sapiente. Aut incidunt ipsam minima minus similique tempore!

Section 2

Lorem ipsum dolor sit amet, consectetur adipisicing elit. Neque optio, sapiente. Aut incidunt ipsam minima minus similique tempore!

Section 3

Lorem ipsum dolor sit amet, consectetur adipisicing elit. Neque optio, sapiente. Aut incidunt ipsam minima minus similique tempore!

Hash

You can set the switcher to use url hashes by setting data-options='{"hash":true}'.

Using url hashes means you can link to a page a set and certain tab to be open. It also means that tab changes are in the browser history.

Note If you are using the hash setting you can not switch multiple targets.

Section 1

Lorem ipsum dolor sit amet, consectetur adipisicing elit. Neque optio, sapiente. Aut incidunt ipsam minima minus similique tempore!

Section 2

Lorem ipsum dolor sit amet, consectetur adipisicing elit. Neque optio, sapiente. Aut incidunt ipsam minima minus similique tempore!

Section 3

Lorem ipsum dolor sit amet, consectetur adipisicing elit. Neque optio, sapiente. Aut incidunt ipsam minima minus similique tempore!