Manual Jquery Mobile PDF
Manual Jquery Mobile PDF
Manual Jquery Mobile PDF
com
En la siguiente imagen podemos ver los logos de los sistemas operativos que jQuery Mobile soporta.
No obstante, cabe sealar existen diversos grados de compatibilidad para cada sistema, o mejor dicho, para cada navegador dentro de cada familia de dispositivos. En la documentacin del framework, en la seccin de Supported Platformsveremos que el grado de compatibilidad est dividido en tres niveles distintos, desde Grado-A (donde estn la mayora navegadores para iOS y Android, as como BlackBerry, Palm WebOS, los navegadores de ordenadores de escritorio, etc.) a Grado-B (donde encontramos a Symbian, Opera Mini 5.0 y 6.0 para iOS o Balckberry 5.0) o Grado-C (con el resto de los smartphones, entre los que se encuentra Windows Mobile o Blackberry 4). En resumen, que segn apuntan en la documentacin, solo se ha dejado sin soporte deliberadamente en esta versin 1.0 del framework el sistema Samsung Bada (El sistema operativo propietario de Samsumg para smartphones), aunque dicen que probablemente funcione relativamente bien incluso sin haberla probado, pues todava no hay dispositivos o emuladores. En los prximos artculos de DesarrolloWeb.com empezaremos a desarrollar con jQuery Mobile, comenzando por las explicaciones sobre cmo hacer una primera pgina bsica. De momento os dejo un par de enlaces que puedan complementar esta informacin: Como no, es imprescidible dar el enlace a este framework, para que podis ir conocindolo: http://jquerymobile.com Adems, una referencia interesante a un sitio donde se puede ver una galera de sitios creados con jQuery Mobile.
Como te habrs percatado, an a estas instancias del Manual de jQuery Mobile no se ha visto ni una sola lnea de Javascript, pero lo mejor es que hemos logrado la constitucin de importantes y relevantes herramientas para cualquier aplicacin web mvil. Sin embargo, con lo anterior no pretendemos decir que jQuery Mobile es solo para crear widgets, sino que tiene muchos ms soportes. Es ms, podemos hacer algunos trabajos de AJAX con el framework, as como cualquier otro tipo de interaccin usuario/sitio, de manera muy simple. Hablando un poco mas de AJAX, creo que hemos comentado anteriormente que el propio framework tambin lo maneja de forma automtica, haciendo incluso por nosotros tratamientos especiales frente a errores, por ejemplo. En este sentido, si llega a producirse algn problema con una transaccin HTTP, o cualquier otro protocolo, jQuery Mobile lo detectar, enviando al usuario un "Toask" como aviso, con un mensaje del problema. Tambin procesa los eventos relacionados con la carga de los datos que se pueden realizar a travs de cualquier peticin que se haga al servidor, mostrndonos de la misma forma un Toask de de carga.
Nota: Para aclarar dudas, quiero decir que un Toask es como una especie de "alert", que aparece encima de las aplicaciones, con la deferencia de que ste no usa botones, se oculta de forma automtica, se usan en los dispositivos mviles y pginas web de forma momentnea.
Tambin existe una forma muy parecida para cambiar las transiciones de los cuadros de dilogo, as tendremos una mejor animacin unificada no slo para las pginas, sino tambin para los cuadros de dilogo.
$.mobile.defaultDialogTransition='slideup';
Ahora si lo que queremos es cambiar el mensaje que viene dentro del Toask, que aparece cuando hay un error, necesitamos el siguiente cdigo:
$.mobile.pageLoadErrorMessage = 'Nuevo mensaje';
Tambin se puede controlar la aparicin y desaparicin de los Toask. Digamos que quiero que, al presionar un botn, aparezca el mensaje de carga. Entonces escribimos un cdigo como este:
$.mobile.loadingMessage = "Hemos modificado el mensaje del Loading"; $.mobile.showPageLoadingMsg('');
Luego para ocultar el Toask lo hacemos con una sencilla lnea de cdigo como esta.
$.mobile.hidePageLoadingMsg();
Recuerda que si quieres tener una referencia ms amplia de las configuraciones por defecto en jQuery Mobile Framework, puedes visitar su documentacin, en la seccin de configuraciones por defecto jquerymobile.com/demos/1.0/docs/api/globalconfig.html
$(document).ready(function(){ $.mobile.pageLoadErrorMessage = 'Esta pagina no esxiste, el mensaje de error ha sido cambiado'; $.mobile.fixedToolbars.show(true); $.mobile.defaultDialogTransition='slideup'; $.mobile.defaultPageTransition='flip'; $("#mostrar").click(function(e){ $.mobile.loadingMessage = "Hemos modificado el mensaje del Loading"; $.mobile.showPageLoadingMsg(''); }); $("#ocultar").click(function(e){ $.mobile.hidePageLoadingMsg(); });
</div> <div data-role="footer"> <h3>Configuraciones</h3> </div> </div> <div data-role="page" id="pag2"> <div data-role="header" data-position="fixed"> <h1>Configuraciones pagina 2</h1> </div> <div data-role="content"> <p>Este es una pagina y puedes ver que hace la transicion flip, sin poner el data-transition en el anlace, todas las paginas tendran la misma transicion</p> <a href="#home" data-role="button" data-icon="back">Regrsar</a> </div> <div data-role="footer"> <h3>Configuraciones pagina 2</h3> </div> </div> <div data-role="page" id="dialogo"> <div data-role="header" data-position="fixed"> <h1>Configuraciones</h1> </div> <div data-role="content"> <p>Este es un dialog y puedes ver que hace la transicion slideup, sin poner el data-transition en el anlace, todos los dialogos tendran la misma transicion</p> <a href="#home" data-role="button" data-icon="back">Regrsar</a> </div> </div> </body> </html>
Sin son observadores, se darn cuenta de que usamos una configuracin no explicada.
$.mobile.fixedToolbars.show(true);
Con sta se logra que todas las barras (header/ footer) que tengan el atributo data-position=fixed, se fijen de la misma forma que lo hace la barra de Google, donde podemos hacer scroll en la pagina y la barra tambin bajar, posicionndose siempre en la parte superior de la ventana del documento.
Artculo por
Dairo Galeano
7
A continuacin podemos ver, parte por parte, comentado todo el anterior cdigo HTML.
Nota: Como acabas de ver, la pgina bsica de este framework para mviles incluye, no solo los scripts jQuery y el componente jQuery Mobile, con sus CSS, sino tambin un bloque de cdigo HTML para crear las partes fundamentales de toda pgina jQuery Mobile. Esto es porque jQuery mobile, como vers a lo largo de los siguientes artculos, no es solo un framework para crear dinamismos del lado del cliente -como podramos entender a jQuery-, sino todo un paquete de utilidades que van desde la maquetacin de contenidos para mviles, mejoras en la presentacin e interfaces de usuario, hasta una serie de mtodos para realizar dinamismos e interaccin con el usuario.
Esto es HTML5!
Como se dijo en el artculo anterior, jQuery Mobile funciona con HTML5. Es decir, para poder disponer de todas las funcionalidades del framework debemos escribir cdigo HTML5. Por ello, podremos apreciar como se define el doctype de HTML5 en la primera lnea de cdigo.
<!DOCTYPE html> Nota: Los entendidos de HTML5 vern tambin que hemos definido una etiqueta META para especificar el juego de caracteres UTF-8, necesario en esta versin del lenguaje HTML. Recordar que se debe guardar el archivo con ese formato, UTF-8, con vuestro editor de texto para que todo vaya correctamente.
Esta etiqueta se debe indicar porque algunos dispositivos realizan un escalado automtico de la pgina para mostrarla a unas dimensiones que no tienen por qu ser las deseadas. En algunos casos se utiliza una anchura virtual de 900 pxeles aproximadamente, con lo que nuestra pgina podra verse escalada. Con esta etiqueta la anchura de la pgina ser igual a la anchura de la pantalla del dispositivo. Sin embargo, esta definicin no entrar en conflicto con la posibilidad de hacer zoom a la pgina, lo que es interesante desde el punto de vista de la accesibilidad. El nico problema de esta etiqueta es que en iOS no se actualiza automticamente la anchura de la pgina al cambiar la orientacin del dispositivo (de horizontal para vertical o viceversa), con lo que las dimensiones pueden no ajustarse a la pantalla cuando alteramos la posicin del mvil. Segn comentan en la documentacin, queda pendiente corregir este asunto en versiones venideras del framework.
En la documentacin del framework nos recomiendan hacer los enlaces con los scripts alojados en el CDN (Content Delivery Network) de jQuery, para un mejor desempeo. Pero si lo preferimos tambin podemos tenerlos alojados en nuestro propio servidor.
Tu mejor ayuda para aprender a hacer webs www.desarrolloweb.com Dentro de esa divisin tendremos otros DIV con los tres roles fundamentales de toda pgina jQuery Mobile: cabecera, cuerpo y pie. La cabecera se indica con el data-role="header".
<div data-role="header">
Con esto hemos terminado con la pgina bsica. Podemos ver el ejemplo en funcionamiento.
Conclusin
Lo ms seguro es que no te haya sorprendido mucho esta primera pgina jQuery Mobile. Realmente no tiene nada en especial y ciertamente, si la vemos en un navegador, no observaremos nada que resulte espectacular. No obstante, en el siguiente artculo que publicaremos en DesarrolloWeb.com modificaremos esta pgina bsica, para aprender cmo es la estructura de la pgina multipgina de jQuery Mobile, que ya nos permitir mostrar algunas de las caractersticas interesantes de este framework. No obstante, quiero que se aprecie que jQuery Mobile ya nos ha alterado un poco el aspecto de nuestra pgina bsica a partir de unos estilos en la cabecera y pie, que son meramente automticos. Nuevamente, os pido un poco de paciencia para conocer en detalle todas las bondades anunciadas de este framework en futuros artculos.
Artculo por
10
Este sitio estara formado por tres pginas distintas: "portada", "galeria" y "comprar". A pesar que estn escritas en el mismo archivo HTML, jQuery se encargar de mostrarlas como si fueran pginas independientes. La navegacin entre ellas est realizada por enlaces, como veremos a continuacin.
11
Como vemos, se le ha colocado id="portada", con lo que ya tiene un nombre asignado. Ahora, si queremos hacer enlaces dirigidos hacia esta portada, los creamos simplemente como si fueran enlaces internos. Para ello colocamos el href="#portada", es decir, tal como se hace con los enlaces dentro de la misma pgina que conocemos del HTML.
<a href="#portada">Ir a la portada</a>
Lo genial de estos enlaces es que, para pasar de una pgina a otra, jQuery Mobile produce una transicin automtica, que hace que una pgina actual desaparezca y entre la enlazada con un efecto suavizado. Ms adelante explicaremos cmo configurar las transiciones entre pginas.
As vemos que, cuando el usuario pulse un enlace que le lleve a esta pgina, se cambiar de manera automtica el titular de la ventana del navegador a lo indicado mediante data-title="Galera de guitarras". En resumen. La primera de las pginas podr tener el ttulo que indiquemos en el TITLE del documento HTML, pero si queremos asignar otros ttulos diferentes a otras pginas de la estructura multipgina, deberemos hacerlo a travs de los atributos data-title.
Atributos data-X
Quiero hacer una mencin aparte a estos atributos especiales de jQuery Mobile. Como has podido ver, al desarrollar para este framework se utilizan diversos atributos "data-X", como los mencionados data-role o data-title.
Nota: Otro ejemplo que hemos puesto en este artculo de la estructura multipgina es data-rel="dialog", que asignado a un enlace, provoca que la pgina que se est enlazando se muestre como si fuera un cuadro de dilogo. Ms adelante veremos ms cosas acerca de los cuadros de dilogo, pero para que se identifique ese data-rel="dialog" pongo aqu el cdigo del enlace donde se ha colocado ese atributo.
Todos estos atributos con prefijo data- son perfectamente vlidos en la sintaxis HTML5, ya que las especificaciones del lenguaje permiten cualquier nmero de atributos que comiencen por la cadena "data-". En HTML5 se utilizan para embeber datos de las aplicaciones web en las propias etiquetas del HTML y jQuery Mobile los utiliza, como has podido comprobar, para configurar el funcionamiento de las pginas desarrolladas con estas libreras. Ms adelante veremos otros usos de esta tcnica para implementar diversos componentes de interfaces de usuario, configurar las transiciones entre pginas, el comportamiento de los enlaces, etc.
12
Conclusin
De momento dejamos por aqu estas explicaciones, ofreciendo el enlace al ejemplo en marcha donde puedes ver la estructura multipgina. Como podrs comprobar al ver el ejemplo en marcha, se han realizado dos tipos de comportamientos dinmicos. Primero las transiciones entre pginas, con un efecto de desplamiento suavizado. Luego el cambio automtico del TITLE del documento, al pasar de una pgina a otra. Es simplemente una pequea muestra de las posibilidades del framework y de como, a partir de mero cdigo HTML, se pueden configurar diversos dinamismos. Ni hace falta decir que, si no bassemos nuestras aplicaciones en jQuery Mobile, realizar estos comportamientos dinmicos exigira usar bastante Javascript y lidiar con las particularidades de cada dispositivo y navegador.
Artculo por
Si recordamos un poco sobre lo que hemos aprendido en desarrolloweb.com sobre de jQuery UI para crear un botn lo, cual no era muy difcil, primero necesitbamos un cdigo HTML como el siguiente:
<a href="#" id ="boton" > Este es my buttton simple jQUI</a>
El cual es un simple enlace, el cual se referencia a travs del id botn, pero que jQuery UI con ayuda de algo de javasScript lo converta en un bonito botn, dicho script sera algo como el siguiente:
$("#boton").button();
13
Tu mejor ayuda para aprender a hacer webs www.desarrolloweb.com Ahora bien, en el caso de jQuery Mobile no se requiere crear scripts para implementar nuestros botones. Eso lo hacemos de forma directa en nuestro documento o cdigo HTML. Se logra con cdigo como el siguiente:
<a href="#" id ="boton" data-role="button" >Este es my buttton simple con jQM</a>
Como podemos ver fue muy fcil crear nuestro botn. Solo tuvimos que asignarle el valor de buttonal atributo data-role de nuestro enlace, algo que podemos hacer sobre un botn creado a travs de la etiqueta input lo cual sera algo como esto:
<input type="button" data-role="button" value="Boton input"/>
Es decir que fcilmente podemos hacerlo de forma directa sobre nuestros submit para enviar formularios a un servidor, lo que nos ayudara a salir del clsico y convencional botn HTML, eso lo logramos con la siguiente lnea de cdigo:
<input type="submit" data-role="button" value="Boton input con type submit"/>
Como se puede observar solo tuvimos que modificar el atributo data-inline y asignarle el valor a true con el fin que el botn se limite al tamao del texto. Otras de las cosas que se pueden hacer con los botones es cambiar sus colores, con el fin de no quedarnos con los que vienen de manera predeterminada. Como todo en jQuery Mobile, se hace de manera muy simple, rpida ycon un grado de eficiencia muy alto. Es decir, que si lo que queremos es tener un boton con diferentes colores, tendramos que escribir un atributo ms a nuestros botones, dicho cdigo puede ser el siguiente:
<a href="#" data-role="button" data-inline="true" data-theme="e" >Este boton es de otro color</a>
Lo que hicimos fue agregar el atributo data-theme al cual le damos el valor de e atribuyndole un tema nuevo a nuestro botn. Dichos temas van de la a hasta la e. Como podemos hacernos a la idea, cada tema de tendr unos colores diferentes. Por ejemplo, si probamos el siguiente cdigo:
<input type="submit" data-role="button" value="submit con otro color" data-theme="b"/>
Obtenemos un botn con un muy atractivo color azul, el cual equivale al darle el valor de b al tributo data-theme. Todo esto nos comprueba que hacer interfaces graficas de usuario que visualmente sean atractivas, es una tarea que se puede hacer en jQuery Mobile con cierto grado de facilidad. Para mayor claridad le dejo un cdigo de una pgina web la cual contiene todo lo explicado en este artculo, con el cual espero que aclaren algunas dudas que hayan quedado en el aire:
<!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width, minimum-scale=1, maximum-scale=1"> <title>Botones con jQuery Mobile</title> <link rel="stylesheet" href="jquery.mobile-1.0.min.css" /> <script src="jquery-1.7.1.min.js"></script> <script src="jquery.mobile-1.0.min.js"></script> </head> <body> <div data-role="page"> <div data-role="header"><h1>Botones</h1></div> <div data-role="content"> <a href="#" id ="boton" data-role="button" >Este es my buttton</a> <input type="button" data-role="button" value="Boton input"/> <input type="submit" data-role="button" value="Boton input con type submit"/> <a href="#" data-role="button" data-inline="true" >Tine el mismo ancho del texto</a>
14
Tambin podemos ver este cdigo funcionando en un ejemplo ya construido. Espero que se diviertan con jQuery Mobile!! De momento lo dejamos hasta una prxima ocasin, donde hablaremos de cmo hacer listas ms atractivas con este framework. No olviden dejar comentarios y apuntes sobre este artculo.
Artculo por
Dairo Galeano
15
Hasta aqu hemos conseguido crear una lista sencilla, donde sus elementos servirn como enlace para comunicarnos con otras tres pginas web. Cada pgina esta relacionada de forma directa con los elementos de la lista, es decir, que al dar clic sobre el elementos con texto de "Coche", el navegador nos llevar a una pgina que contiene informacin acerca de los coches.
La tarea con los divisores es muy sencilla y se consigue con un cdigo como el siguiente.
<ul data-role="listview" > <li data-role="list-divider">Medios de transporte terrestrses</li> <li><a href="#coche" >Coche</a></li> <li data-role="list-divider">Medios de transporte Areos</li> <li><a href="#avion">Avin</a></li> <li><a href="#aeroplano">Aeroplano</a></li> </ul>
Como pueden darse cuenta, es muy sencillo. Solo hay que agregar dos elementos <li> en la posicin donde deseamos tener nuestros divisores, pero a estos elementos debemos asignarle el atributo data-role al cual le danos el valor de list divider. Con ese nico detalle es suficiente para obtener un divisor en nuestras listas.
Nota: En el cdigo anterior los divisores se han identado a la derecha, pero eso simplemente es para que visualmente se puedan identificar mejor. Sobra decir que en el cdigo HTML estos sangrados no se tienen en cuenta por los navegadores, aunque s nos sirven a los desarrolladores a leer mejor los cdigos que creamos.
Sangrado: Otro asunto que atae a las listas es que en su configuracin por defecto no conservan un margen en la pagina. Si lo deseamos, podemos agregar ese margen por medio de un nuevo atributo a nuestra lista, que se coloca de forma directa en la etiqueta <ul> del HTML. Ese atributo es el data-inset, el cual recibe un valor booleano, es decir, que si queremos producir el margen solo que darle valor de true al atributo. Con esto obtendremos una lista que conservar ciertos mrgenes con respecto a la pagina, adems de crearle un borde redondeado. Todo eso se logra con un cdigo como este:
<ul data-role="listview" data-inset="true">
16
Tu mejor ayuda para aprender a hacer webs www.desarrolloweb.com Temas grficos de personalizacin: Los componentes de interfaz grafica de usuario en jQuery Mobile comparten la gran mayora de atributos, es decir, que a nuestra lista podemos modificar su data-theme con el fin de obtener una lista con color diferente. Esto se consigue igual que se explic en los botones, con un cdigo HTML como el siguiente:
<ul data-role="listview" data-inset="true" data-theme="b">
Tambin podemos hacer modificaciones en sus divisores agregando un nuevo atributo en la etiqueta <ul>. Es til hacer esto para que nuestros divisores se diferencien de los dems elementos, quedndonos un cdigo como este:
<ul data-role="listview" data-inset="true" data-theme="b" data-dividertheme="a">
Como se puede observar, solo agregamos un nuevo atributo data-dividertheme con el que se la da un tema a los divisores de la a lista, este es el "a", con el conseguimos un color negro. El efecto es que los divisores aparecern con el color diferente que asigna jQuery Mobile por defecto.
17
Espero puedan comprender todo el cdigo anterior. Recomiendo leer otros artculos previos del manual si es que tienes alguna duda sobre asuntos como el sistema multipaginas de jQuery Mobile. Antes de acabar, quiero que se aprecie tambin que las tres pginas que contienen la informacin de los medios de transporte (coche, avin, aeroplano), tienen una forma de retorno al inicio. Son enlaces convertidos en botones, si no sabes cmo crear botones con jQuery Mobile revisa el artculo publicado anteriormente. Tambin puede ver el ejemplo en funcionamientos en una pgina aparte. Con esto les dejo hasta la prxima entrega. Como siempre, es todo un placer poder compartir informacin con ustedes. Nos vernos pronto y no olvides dejar tus cometarios o dudas.
Artculo por
Dairo Galeano
Las alertas, o cualquier cuadro de dialogo que creemos en jQuery Mobile, se construye con una sencillez sorprendente. Adems son altamente verstiles, ya que nos permiten hacer muchas cosas, y cuando digo que muchas es porque los dilogos parecen no tener lmites, viajando mas all de una simple alert, confirmDialog, o
18
Tu mejor ayuda para aprender a hacer webs www.desarrolloweb.com inputDialog. La razn por la que un cuadro de dialogo en jQuery Mobile parece no tener lmites es porque realmente son como una pgina web completa, ya sea de las mltiples en nuestro documento HTML o separada en un archivo aparte. Gracias al hecho de ser una pgina independiente, podremos hacer multitud de cosas como agregarle imgenes, crear formularios, anexarle botones, agregar videos, o todo lo que soporte una pgina web corriente. Con esto se puede entender el sin fin de aplicaciones y posibilidades que los cuadros de dilogo pueden tener en jQuery Mobile. Pero claro, tampoco podemos abusar de ellos, recordemos que aun siguen siendo cuadros de dilogo.
Nota: Vuelvo a insistir en que debemos fijarnos en el atributo data-rel, al cual se le asigna el valor de "dialog". Todo lo dems que necesitas saber para entender ese cdigo ya ha sido explicado en artculos anteriores, como Crear botones con jQuery Mobile. Asimismo, tambin debes haber aprendido el manejo del sistema multi-paginas, que ofrece el framework.
Con un botn como el que creamos en el cdigo anterior, ya estaramos haciendo de la pagina con id "dialogo" un cuadro de dilogo. Sin embargo, tambin debemos crear un mecanismo de regreso ya que, a diferencia de las cajas de alerta convencionales que se crean con Javascript, stos no permanecen en la pgina que los invoca. Debes tener en cuenta que cuando se va a un cuadro de dilogo se viaja a travs del enlace a una nueva pgina, a pesar que jQuery Mobile produzca una visualizacin diferente. Para regresar nuevamente a la pagina, podrimos agregar el siguiente cdigo en la pagina con id de "dialogo".
<a href="#aja" data-role="button" data-rel="back">Aceptar</a>
Como se verse, en este caso tambin es un botn, con la diferencia que esta vez su atributo data-rel tiene el valor de "back". Con esto no tenemos la necesidad de asignar la direccin al enlace hacia la pgina inicial. Incluso si le damos una direccin diferente a la pgina de inicio, jQuery Mobile nos devolver a la pagina que invoc el dialogo.
19
Ya solo bastara crear otra pgina web e identificarla como id="dialogo2", en esta podramos por ejemplo hacer lo siguiente.
<div data-role="page" id="dialogo2"> <div data-role="header" data-theme="b"><h1>dialogo con colores configurados</h1></div> <div data-role="content" data-theme="a"> Este es un cuadro de dialogo configurado que esta dentro del mismo HTML del enlace <a href="#" data-role="button" data-theme="e" data-rel="back">Aceptar</a> </div>
Como puedes observar solo tenemos que asignarle el atributo data-theme, con diferentes valores, sobre la etiqueta HTML que crea el objeto. De esa forma podemos obtener paginas y en este caso de cuadros de dilogo ms variados en color.
20
Sera hasta una prxima, esperamos veros pronto y recuerda que puedes ver el ejemplo en funcionamiento en una pgina aparte.
Artculo por
Dairo Galeano
Solo hay que agregar un nuevo atributo data-icon y asignarle el valor de "home". Con esto conseguimos que nuestro botn tenga un pequeo icono de una casa. Pero eso no es todo, jQuery Mobile dispone de iconos en varios colores y utilizar aquel que mejor se vea con el tema grfico que ests utilizando en tu aplicacin. Supongamos que tu botn tiene el tema "a", con el que conseguimos que elementos como botones sean de color negro. En ese caso el icono ser de color blanco, para que resalte. Ahora si tienes el tema "c", que es un color con tono muy bajo, el framework le asignar a nuestro botn un icono ms oscuro, siempre acorde al color del tema.
21
Tu mejor ayuda para aprender a hacer webs www.desarrolloweb.com jQuery Mobile cuenta con una larga lista de iconos. Todos se indican a travs de distintos valores del atributo data-icon. Algunos ejemplos son los siguientes: Flecha hacia la izquierda: data-icon="arrow-l" Flecha hacia la derecha: data-icon="arrow-r" Flecha hacia arriba: data-icon="arrow-u" Flecha hacia abajo: data-icon="arrow-d" Eliminar: data-icon="delete" Mas: data-icon="plus" Menos: data-icon="minus"
Nota: Esta es solo una lista parcial, por mencionar algunos ejemplos. Si quieres saber la lista completa te invito a verla en la documentacin oficial de jQuery Mobile.
Como se puede ver, ahora usamos otro icono, con nombre "plus", adems en el cdigo HTML agregamos el atributo data-iconpos="bottom", para poner el icono bajo el texto. Este atributo puede recibir los siguientes valores para posicionar el icono: "top", "left", "right" y "bottom". Sobra la explicacin de los resultados que obtendremos con cada uno de ellos. Adems de los valores mencionados anteriormente, el atributo data-icon-pos puede recibir un quinto valor, el cual es: "notext", con el que eliminamos el texto de nuestro botn y solo aparecer el icono que le hayamos asignado. Ahora crearemos un botn que solo tendr nuestro icono, es decir, no aparecer el texto. Lo agregaremos dentro del header, con el fin de obtener un botn parecido al de la documentacin de jQuery Mobile, algo que conseguimos con el siguiente cdigo:
<a href="#" data-role="button" data-icon="home" data-iconpos="notext" class="ui-btnright">Inicio</a>
Como pueden ver, no solo lo dejamos sin texto, tambin le asignamos la clase CSS "ui-btn-right" con el fin de que aparezca a la derecha del header. Todo esto viene prediseado en el framework, solo debemos usarlo, a travs del HTML.
22
El ejemplo en marcha se puede ver en una pgina aparte. Para terminar te invito a modificar el cdigo y obtener diferentes posiciones de los iconos, adems de probar otras imgenes de las que ofrece el framework.
Artculo por
Dairo Galeano
23
Como debemos saber, si hemos seguido la marcha del Manual de jQuery Mobile, a todo lo que tiene que ver con los widgets del framework, debemos agregarle el atributo data-role. En este caso recibe el valor de "navbar". Adems, como se aprecia en el cdigo anterior, tenemos que crear una estructura en HTML, con un un elemento DIV, dentro del cual debe estar contenida una lista (Elemento UL). Pero atencin porque esta lista no organizar sus elementos uno debajo del otro, sino uno a continuacin del otro, es decir, crea una barra horizontal. En este momento, tal vez algunos lectores se preocupen por el espacio, en caso de que, al expandirse de forma horizontal, no quepan todos los elementos en las a menudo estrechas pantallas de los dispositivos. El problema lo resuelve jQuery Mobile de forma muy eficiente, ya que cada uno de los elementos tiene el mismo ancho, es decir que si tenemos dos elementos, cada uno tendr, la mitad del ancho de la barra, y si son tres entonces cada uno ser de un ancho igual a un tercio de la barra. Aun hay ms, pues si la pantalla es muy pequea, o son muchos elementos, entonces mostrara la barra en varias lneas, pasando de una fila de elementos a una rejilla o tabla.
Agregando temas
A lo largo del Manual de jQuery Mobile, hemos visto que para agregar temas a cualquiera de los widgets, presentes en el framework, solo debemos colocar el atributo data-theme. Sin embargo, en las barras de navegacin no funciona as. Es decir, si en nuestro elemento DIV hacemos esto, no se provocar ningn cambio. En cambio, si queremos que todos los elementos de la barra de navegacin se vean diferentes al que jQuery Mobile le asigna por defecto, debemos agregar el data-theme en el elemento que contiene a nuestra barra, que en este caso es el pie de la pgina. Si hacemos lo que se explicaba anteriormente terminaramos por construir un pie de pgina como el siguiente.
<div data-role="footer" data-position="fixed" data-theme="b"> <div data-role="navbar"> <ul> <li><a href="#jq" data-icon="star">jQuery</a></li> <li><a href="#jqui" data-icon="plus"> jQuery UI </a></li> <li><a href="#jqm" data-icon="grid"> jQuery Mobile </a></li> </ul> </div> <!-- /navbar --> </div> <!-- /footer -->
Como puedes ver adems de agregar el tema "b" al pie de la pgina, con el que obtenemos el color azul, tambin le puse un icono a cada uno de los elementos que componen la barra de navegacin. Si no sabes cmo trabajar con iconos, revisa el artculo anterior del manual de jQuery Mobile donde nos dedicamos a explicar el tema de los iconos y sus configuraciones. Pero cabe resaltar que a cada uno de los elementos, puedes asignarle un tema diferente. Tal vez quieras que alguno resalte, como por ejemplo el que tiene el texto jQuery Mobile, algo que conseguimos con un cdigo como el siguiente.
<li><a href="# jqm" data-icon="grid" data-theme="e" data-transition="flip"> jQuery Mobile </a></li>
Ahora hemos agregado un data-theme a un solo elemento, pero quizs les llame la atencin, el atributo data-transition. Con esa configuracin logramos que al pasar de una pgina a otra se modifique la transicin normal que hace jQuery Mobile.
24
Nota: La transicin flip no funciona muy bien en navegadores Firefox e Intenet Explorer. Si quieres ver el efecto debes probarlo en Google Chrome o Safari, tambin es diferente el efecto que se genera en los dispositivos Android 2.2, donde hemos probado el efecto y no es el resultado que se obtienen en dispositivos con iOS 4.x. En iOS 5.X funciona perfecto tambin.
25
Con todo esto hemos aprendido dos tpicos de jQuery Mobile. Por un lado las mencionadas barras de navegacin, pero tambin hemos dado un primer repaso a las transiciones entre pginas. Nos vemos en una prxima, recuerda dejar tus comentarios y apuntes. De tarea te queda hacer las dos pginas restantes, o bien puedes verlas ya realizadas en el ejemplo completo en una pgina aparte.
Artculo por
Dairo Galeano
26
Como puedes ver, es solo un elemento INPUT (ya que el label realmente no forma parte del slider, simplemente coloca un texto al lado). Ser jQuery Mobile el que se tome el trabajo de agregar el CSS correspondiente para que funcione de manera eficiente.
Nota: Para quienes no estn relacionados con este nuevo INPUT de HTML5, cabe comentar que las nuevas especificaciones del lenguaje de la web contienen 13 nuevos tipos de campos INPUT. Cada uno de estos nuevos INPUT son importantes sobre todo, para dispositivos tctiles, ya que dependiendo del tipo de input aparecer un teclado virtual acorde para rellenar el campo. Podremos encontrar, entre otros, campos especficos para:
Input type=tel: Formato para nmeros de telfonos. Input type=search: Formato para campos de bsqueda. Input type=url: Formato para escribir direcciones web. Input type=number: Formato para escribir valores numricos. Input type=email: Formato para direcciones de email. Input type=range: Con este trabajamos en el presente articulo. Input type=datetime: til para fechas y horas.
Para vuestra informacin, estamos preparando documentacin sobre este asunto que pronto aparecer en DesarrolloWeb.com.
La etiqueta HTML, como has visto, no tiene cdigo Javascript por ninguna parte. Es decir, jQuery Mobile lo implementa todo sin que debas preocuparte de nada. Sin embargo, debes tener en cuenta que el slider se cree a partir de un elemento INPUT, pues, de no hacer esto, el funcionamiento del slider no estara garantizado. Las otras opciones que tenemos a disposicin de los sliders estn relacionadas con los aspectos visuales del widget. Como ya podemos saber, disponemos del atributo data-theme para modificar el color de los componentes. Adicionalmente, los slider cuentan tambin con data-track-theme. As que si lo que queremos es un slider con variedad de colores tanto en el control que se desliza como en la ruta por donde pasa el control, necesitaramos un cdigo como el siguiente:
<label for="slider1">Slider Simple con temas: </label> <input type="range" name="slider1" id="slider1" max="100" min="1" value="40" data-theme="b" datatrack-theme="a"/>
Como se puede notar ahora hemos cambiado los atributos antes mencionados, lo cual no requiere mayor explicacin si has seguido el Manual de jQuery Mobile hasta este punto.
27
Tu mejor ayuda para aprender a hacer webs www.desarrolloweb.com siendo "slider". Veamos un cdigo de ejemplo con el cual podemos crear uno de estos interruptores.
<select name="slider" id="flip1" data-role="slider"> <option value="off">Off</option> <option value="on">On</option> </select>
Como se puede ver, es un elemento SELECT con el atributo data-role, al cual asignamos el valor "slider". Adems, cabe fijarse tambin en los dos elementos OPTION, que expresan los distintos estados del interruptor. Para indicar a jQuery Mobile cuando est encendido y cuando est apagado debemos configurar los value de los OPTION. Puedes ver en el cdigo de ejemplo los valores en el atributo value, "off" en el primero y "on" en el segundo.
Nota: Si haces ms OPTION de los debidos, jQuery Mobile creara el slider de todas formas, pero no ser nada agradable el resultado, obtendrs las tres opciones, pero enredadas. De igual forma, si no le das por ejemplo el valor al atributo value de la opcin de encendido, el interruptor no funcionar.
A la hora de crea un interruptor tambin lo puedes personalizar, con los temas que disponemos en el framework. Para esta tarea disponemos del atributo data-theme, dejando a JQuery Mobile framework la tarea de hacer la combinacin de temas entre las dos opciones.
Conclusin
Con el fin de obtener componentes mas vistosos y uniformes, ser el propio framework quien se encargue que la configuracin visual de cada uno de los elementos INPUT que se implementen en modo de slider. Por tanto, nuestra tarea de codificacin se queda en ms bien poco. No obstante, como de costumbre, dejamos el cdigo de un ejemplo completo, con todo lo explicado en este articulo.
<!DOCTYPE html> <html lang="es"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, minimum-scale=1, maximum-scale=1"> <title>Sliders con jQuery Mobile</title> <link rel="stylesheet" href="jquery.mobile-1.0.min.css" /> <script type="text/javascript" src="jquery-1.7.1.min.js"></script> </head> <body> <div data-role="page"> <div data-role="header"> <h1>Sliders</h1> </div> <div data-role="content"> <div data-role="content"> <form action="#" method="get"> <div data-role="fieldcontain"> <label for="slider">Slider Simple: </label> <input type="range" name="slider" id="slider" max="100" min="1" value="25" /> <br> <label for="slider1">Slider Simple con temas: </label> <input type="range" name="slider1" id="slider1" max="100" min="1" value="40" data-theme="b" data-track-theme="a"/> <br> <label for="flip1">Seleccionar una de dos opciones</label> <select name="slider" id="flip1" data-role="slider"> <option value="off">Off</option> <option value="o">On</option> </select> </div> </form> </div> <div data-role="footer"> <h3>Sliders</h3> </div>
28
Recuerda que tambin puedes ver el ejemplo en una pgina aparte, para comprobar su funcionamiento. Hasta una prxima entrega.
Artculo por
Dairo Galeano
Como puedes observar en el cdigo anterior, dentro del elemento DIV debemos hacer un encabezado, que ser el ttulo del collapasible. A continuacin hacemos un prrafo dentro del DIV, el cual es el contenido del elemento, donde podemos insertar cualquier etiqueta HTML como contenido. Por defecto, el collapasible aparece recogido, pero si se requiere podemos configurar el widget para que aparezca abierto al cargar la pgina. Para ello solo hay que agregar el atributo data-collapsed, que recibe un valor booleano. La forma de usarlo es muy simple y se puede apreciar en el siguiente cdigo.
<div data-role="collapsible" data-collapsed="false"> <h3>Elemento Collapsible abierto</h3> <p>Este es el contenido del collapsible el cual podemos ocultar</p>
29
Con esto estamos creando un collapsible que al cargar la pgina est abierto. Adems quise agregar un botn, algo que ya hemos aprendidos en artculos pasados del manual de jQuery Mobile, para ilustrar que podemos meter cualquier elemento dentro de este widget. Por rizar el rizo, podramos insertar hasta otro collapsible dentro del primero.
Como se puede apreciar, tambin est inmerso un collapsible, cada uno puede tener sus temas diferentes, aunque tambin se puede trabajar con el tema que tiene el collapsible padre.
Dentro de este elemento DIV agregamos todos los collapsibles que deseemos, haciendo que cada uno se comporte como un elemento del acorden. Como puedes imaginar, a los acordeones tambin se les puede aplicar temas grficos con data-theme o data-content-theme, para que cada uno de sus elementos tenga el mismo color. Aunque tambin puedes asignar un tema diferente a cada uno de los elementos. Para mayor claridad de todo lo explicado en este artculo veamos el cdigo completo de una pequea aplicacin web mvil que ilustra el uso de collapsible.
<!DOCTYPE html> <html lang="es"> <head> <meta charset="utf-8"/> <meta name="viewport" content="width=device-width, minimum-scale=1, maximum-scale=1"> <title>Collapsible con jQuery Mobile</title>
30
Recuerda que tambin puedes ver un ejemplo en funcionamiento en una pgina aparte.
Artculo por
Dairo Galeano
31
Lo primero que hacemos es crear un elemento DIV, que tendr como clase CSS, "ui-grid-a". Con tal clase le indicamos al framework que justo all inicia nuestra grilla, que en este caso es de dos columnas. Como dije anteriormente no solo pueden tener dos columnas, pues podremos crear grilla que tengan hasta cinco. Para especificar las columnas que deseamos implementar estn las siguientes clases. Para grillas con dos columnas le asignamos la clase: ui-grid-a. Para grillas con tres columnas le asignamos la clase: ui-grid-b. Para grillas con cuatro columnas le asignamos la clase: ui-grid-c. Para grillas con cinco columnas le asignamos la clase: ui-grid-d.
Una vez establecida la grilla, debemos proceder con la creacin de los bloques, uno por columna. En el cdigo anterior son dos bloques, cuya creacin se logra tambin con la asignacin de clases CSS. Como se habr podido observar, asignamos al primer elemento DIV la clase "ui-block-a", mientras el segundo tiene "ui-block-b". Al igual que con las grillas, lo bloques van aumentando de acuerdo con el nmero que hayamos establecido en la grilla. Solo debemos cambiar la ltima letra. Para crear el primer bloque usamos la clase ui-bloc-a. Para crear el segundo bloque usamos la clase ui-bloc-b. Para crear el tercer bloque usamos la clase ui-bloc-c. Para crear el cuarto bloque usamos la clase ui-bloc-d. Para crear el quinto bloque usamos la clase ui-bloc-e.
Cada uno de los bloques, tiene el mismo ancho, algo parecido a lo que pasa con las barras de navegacin explicadas en un artculo anterior del manual de jQuery Mobile. As que si tenemos cinco columnas, cada uno de los bloques, tendr el 20% de ancho del documento web o elemento contenedor de la grilla.
32
Ahora obtenemos dos columnas, la primera tiene un color amarillo, asignado por el tema "e", mientras que la segunda tiene es azul, al tener asignado el tema "e".
Nota: Las clases para darle color a las columnas y grillas, tambin se pueden poner en elemento div, que tienen las clases "ui-drid-a" o "ui-bloc-a", pero la documentacin de jQuery Mobile no lo recomienda.
33
Tu mejor ayuda para aprender a hacer webs www.desarrolloweb.com Slo debemos crear dos bloques mas, despus de los inciales, es decir, que si nuestra grilla es de tres columnas, debemos crear seis bloques para obtener dos filas. Para mayor claridad dejo un cdigo de ejemplo con todo lo visto en el presente artculo.
<!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width, minimum-scale=1, maximum-scale=1"> <title>Culumnas con JQM</title> <link rel="stylesheet" href="jquery.mobile-1.0.min.css" /> <script src="jquery-1.7.1.min.js"></script> <script src="jquery.mobile-1.0.min.js"></script> </head> <body> <div data-role="page" id="inicio"> <div data-role="header" data-position="fixed"> <h1>Columnas</h1> </div><!-- /header --> <div data-role="content" > <span class="ui-btn-active">Dos columnas simples</span> <div class="ui-grid-a"> <div class="ui-block-a" > <div class="ui-bar ui-bar-e"> <strong>Esta es la columna numero 1</strong> El texto que se ecriba aqui se almodar a la mitad de pagina. </div> </div> <div class="ui-block-b"> <div class="ui-bar ui-bar-b"> <strong>Esta es la columna numero 2</strong> El texto que se ecriba aqui se almodar a la otra mitad de pagina. </div> </div> </div><!-- /grid-a --> <br> <span class="ui-btn-active">Dos columnas simples con dos filas</span> <div class="ui-grid-a"> <div class="ui-block-a" > <div class="ui-bar ui-bar-e"> <strong>Esta es la columna numero 1</strong> El texto que se ecriba aqui se almodar a la mitad de pagina. </div> </div> <div class="ui-block-b"> <div class="ui-bar ui-bar-a"> <strong>Esta es la columna numero 2</strong> El texto que se ecriba aqui se almodar a la otra mitad de pagina. </div> </div> <div class="ui-block-a" > <div class="ui-bar ui-bar-c"> <strong>Esta es la columna numero 1</strong> El texto que se ecriba aqui se almodar a la mitad de pagina. </div> </div> <div class="ui-block-b"> <div class="ui-bar ui-bar-b"> <strong>Esta es la columna numero 2</strong> El texto que se ecriba aqui se almodar a la otra mitad de pagina. </div> </div> </div><!-- /grid-a con dos filas-->
34
</div><!-- /content --> <div data-role="footer" data-position="fixed"> <h3>Grillas</h3> </div><!-- /footer --> </div><!-- /page --> </body> </html>
Tambin puedes ver el ejemplo en marcha en una pgina aparte, donde podrs apreciar las tres columnas tambin, adems de las tres filas, cdigo que no dejo completo, para no redundar mucho, as que si lo quieres puedes ver el cdigo fuente del ejemplo.
Artculo por
Dairo Galeano
35
Tu mejor ayuda para aprender a hacer webs www.desarrolloweb.com Para arrancar, tenemos tres temas que van de la A a la C, pero podemos ir agregando ms segn nuestras necesidades. As que si quieres crear una aplicacin muy variada en colores, puedes hacer temas hasta llegar a letra Z. En las opciones que tenemos para las configuraciones globales podemos hacer cambios como: Cambiar el tipo de la fuente Cambiar el radio de los bordes Modificar el color de los iconos y muchas otras cosas...
Ya solo es cuestin de qu necedades tengas o la forma en que quieras que se vean tus aplicaciones. Despus, puedes ir modificando uno a uno los temas, dentro de los cuales ya encontramos configuraciones ms particulares. En el centro de la pgina contamos con un visualizador de cada uno de los temas, donde podemos ver en tiempo real los cambios que estamos creando en nuestro tema actual. sto nos ayuda a orientarnos sobre los resultados finales que obtendremos, mostrndonos diferentes widgets que maneja el framework, como listas, botones, barras entre otros.
Como veis, las secciones son muy ilustrativas y no se requieren grandes configuraciones, pues todo est servido para hacerlo de manera grfica, manejando los colores a travs de paletas donde podemos seleccionarlos y muchas otras cosas que convierten a ThemeRoller en una herramienta muy til. Para solucionar el problema antes planteado de la ausencia de colores como el rojo o el verde, debemos simplemente crear un tema personalizadom donde incluimos esos colores, adems de agregar un sexto tema.
36
En este caso, estamos usando para el tema modificado el nombre "tema-personalizado", en su versin comprimida, pues en la carpeta de themes dentro del .zip encontramos dos archivos CSS para el mismo tema. Otro caso particular es que no se usa el archivo "jquery.mobile-1.0.min.css", sino uno con un nombre "jquery.mobile.structure-1.0.min.css". Este archivo es muy importante, pues al no incluirlo no funcionar el ejemplo. Ese archivo tambin se descarga junto con el .zip que obtenemos al descargar jQuery Mobile, as que puedes tambin ponerlo a trabajar de forma local, sin necesidad de usar el CDN. Para terminar nos gustara deciros que un buen diseo con ThemeRoller depende del empeo, por eso te invitamos a trabajar con l, para obtener aplicaciones jQuery Mobile ms personalizadas.
Artculo por
Dairo Galeano
37