Evilnapsis

Programming, Hacking and More

Web Development

Crear un Splitter menu con Onsen UI

El Splitter menu también conocido como menú hamburguesa es un componente de Onsen UI que permite tener un menú de navegación oculto y que se muestra al presionar un botón en la barra de navegación.

El splitter menú es un componente muy útil para aplicaciones que cuentan con muchas paginas y busca facilitar el acceso al usuario.

Les invito a ver los articulos Introduccion a Onsen UI y Plantillas y navegacion entre paginas con Onsen UI les ayudaran a comprender mejor este articulo.

Código

Parte 1

La primera parte del código, después de incluir las librerías onsen ui y jquery seria el navigator y el template del splitter menu.

<ons-navigator swipeable id="myNavigator"></ons-navigator>
<!-- Plantilla para el splitter menu, aqui se muestra el menu y en el espacio "content" se muestra la pagina que se selecciona por default=page1.html -->
<template id="splitter.html">
<ons-splitter>
  <ons-splitter-side id="menu" side="left" width="220px" collapse swipeable>
    <ons-page id="menu.html">
      <ons-list>
        <ons-list-item class="menux_item" data-href="page1.html" tappable>
          Pagina 1
        </ons-list-item>
        <ons-list-item class="menux_item" data-href="page2.html"  tappable>
          Pagina 2
        </ons-list-item>
      </ons-list>
    </ons-page>
  </ons-splitter-side>
  <ons-splitter-content id="content" page="page1.html"></ons-splitter-content>
</ons-splitter>
</template>

Aquí tenemos  un template que contiene un componente ons-splitter que contiene la configuración del menu, la lista de opciones y el splitter content apunta a la pagina de inicio por default.

Parte 2

Lo siguiente seria la pagina 1 o page1.html.

<template id="page1.html">
  <ons-page id="page1">
    <ons-toolbar
      <div class="left">
        <ons-toolbar-button id="open_menu">
          <ons-icon icon="md-menu"></ons-icon>
        </ons-toolbar-button>
      </div>
      <div class="center">Mi Aplicacion</div>
    </ons-toolbar>
    <ons-card >
      <div class="title">Pagina 1</div>
      <div class="content">
        <p>Esta es la pagina 1</p>
      <div>
      </div>
      </div>
    </ons-card>
  </ons-page>
</template>

La pagina que debe tener un toolbar con un botón que servirá para abrir el menu. El ons-toolbar contiene el titulo de la aplicación y un botón con id=open_menu y un icono de menú, que servirá para abrir el menú.

Parte 3

Esta parte es otra pagina, ya que el menú de la parte 1 indica que hay 2 pagina, page1.html y page2.html.

<template id="page2.html">
  <ons-page id="page2">
    <ons-toolbar
      <div class="left">
        <ons-toolbar-button id="open_menu">
          <ons-icon icon="md-menu"></ons-icon>
        </ons-toolbar-button>
      </div>
      <div class="center">Mi Aplicacion</div>
    </ons-toolbar>
    <ons-card >
      <div class="title">Pagina 2</div>
      <div class="content">
        <p>Esta es la pagina 2</p>
      <div>
      </div>
      </div>
    </ons-card>
  </ons-page>
</template>

Esta pagina es similar a la primera pagina page1.html solo cambia el contenido de la pagina.

Todas las paginas deben tener el toolbar y el botón de menu.

Parte 4

Esta es la ultima parte, es el código javascript para activar el menú.

ons.ready(function() {
  document.querySelector("#myNavigator").resetToPage('splitter.html'); // seleccionamos la paginapor default, seria el template splitter
});

$(document).on("init", function(e) {
    $("#open_menu").click(function() { // al hacer click en el icono de menu
      $('#menu')[0].open(); // abrimos el menu
    })

  if (e.target.id == 'menu.html') { // Al seleccionar un elemento del menu
    $(".menux_item").click(function() {
      var href = $(this).data('href'); // Vamos a usar el data-href que contiene cada elemento
      $('#content')[0].load(href).then(menu.close.bind($('#menu')[0])); // cargamos la pagina correspondiente y cerramos el menu
    });
  }
});

Agregue unos comentarios en el código para que se entienda un poco mejor.

Resultado

Este es el resultado de como se muestra el menú.

Descargar

A continuación les proporciono un enlace para descargar el ejemplo.

Link: https://drive.google.com/file/d/1gnwCSt0GSczUfLdddKjIwdRiRIv4KW_R/view

Solo debes descomprimir y abrir el archivo index.html en su navegador.

Conclusión

Onsen UI es una manera fácil y rápida de hacer aplicaciones móviles web, próximamente estaremos subiendo mas artículos y ejemplos de onsen ui.

No se olviden de comentar y suscribirse al blog para recibir un email cada vez que se publiquen nuevos artículos.

También les invito a suscribirse a mi canal de youtube donde publico video demostraciones https://youtube.com/evilnapsis

Saludos a todos!

Agustin Ramos

Desarrollador de Software

Leave a Reply