Introducción breve
- Para agregar comportamiento a los elementos html se utiliza (principalmente) el atributo
data-role
lo cual define, como es de esperar por su nombre, el rol que cumplirá el elemento. - Si bien se pueden organizar cada pantalla como un archivo html aparte, jquerymobile ofrece el concepto de páginas, ¿y como se indica este comportamiento?... si, si, con
data-role="page"
. - También contamos con otros
data-role
comoheader
,content
,footer
,dialog
,listview
,button
, etc. - Un elemento importante de definir en el
<head>
del html es<meta name="viewport" content="width=device-width, initial-scale=1">
el cual determina que el ancho de la página es el ancho de la pantalla de dispositivo
Nota: al momento de escribir este post, la versión 1.1 está en rc1 (Unstable build) por lo que los ejemplos están desarrollados con la última versión estable (1.0.1).
Referenciando js y css
descargarLa estructura base de cualquier página (de este post) será:
Multipage
descargar ver imagenPodemos definir varias page
en un mismo html y para acceder a cada una de ellas lo haremos con #
indicando así el fragmento (o recurso secundario) que queremos cargar:
Principales partes de una página
descargar ver imagenCada página se divide en 3 secciones principales: header
, content
y footer
, el atributo data-position="fixed"
indica que el elemento siempre se mantendrá visible.
Navigator
descargar ver imagenPodemos agregar un menú para navegar entre las páginas, esto se hace con el data-role="navbar"
, armando una lista ul/li
con elementos a
en su interior como la siguiente:
Listas
descargar ver imagenUna forma bastante elegante de armar una lista es con el
data-role="listview"
en un elemento ul
:Mejorando las listas
descargar ver imagenAlgunos efectos interesantes sobre las lista puede ser
data-filter="true"
que agrega un cuadro de filtrado, data-inset="true"
mejora el aspecto y data-role="list-divider"
para colocar elementos (li
) como divisores:Dialogs
descargar ver imagenAl mismo nivel que
page
tenemos dialog
, la principal diferencia entre ambos es que el primero ocupa toda la pantalla mientras que el segundo se muestra "por sobre" la pantalla anterior y tiene cierto comportamiento propio de un dialog (como el botón para cerrarlo).para invocar al
dialog
, lo mismo que antes para una page
, un elemento a
con href="#message"
Hasta aquí llegó este post introductorio, les dejo un ejemplo completo que también pueden descargarlo (el cual contiene los css y js necesarios para ejecutarse).
Si les pareció un framework interesante, les recomiendo seguir por el sitio de jquery-mobile que no tiene desperdicio.