OPTATIVA IV - PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS Ó - INTRODUÇÃO A JQUERY MOBILE P f Angelo Prof. A l A Augusto t F Frozza, M M.Sc. S http://about.me/TilFrozza ROTEIRO Introdução Principais características JQUERY MOBILE Para utilizar o JQuery Mobile você precisa incluir três coisas no seu HTML: Script do JQuery http://code.jquery.com/jquery-1.5.min.js Script do JQuery Mobile Onde estão os métodos específicos para mobile http://code.jquery.com/mobile/1.0a3/jquery.mobile-1.0a3.min.js CSS da interface do usuário (UI) para JQuery Mobile http://code.jquery.com/mobile/1.0a3/jquery.mobile-1.0a3.min.css http://code.jquery.com/mobile/1.0a3/jquery.mobile 1.0a3.min.css JQUERY MOBILE Primeiro exemplo (index.html) <!DOCTYPE html> <html> <head> <title>Primeira Página</title> <script type="text/javascript" src="http://code.jquery.com/jquery1.5.min.js"> </ </script> i t> <script type="text/javascript" src="http://code.jquery.com/mobile/1.0a3/jquery.mobile-1.0a3.min.js"> </script> y <link rel="stylesheet" href="http://code.jquery.com/mobile/1.0a3/jquery.mobile-1.0a3.min.css" /> </head> <body> <div data-role="page"> <di data-role="header"> <div d t l "h d "> <h1>Primeira página</h1> </div> <div data-role="content"> <p>Essa é sua primeira página para dispositivos móveis</p> </div> </div> </body> </html> JQUERY MOBILE A partir do HTML 5 pode-se colocar metadados nas tags usando o data-* Então a essência do JQueryy Mobile é basicamente utilizar o atributo data-* para as diferentes funcionalidades e aparências. Alguns atributos data-* que podem ser utilizados nas diferentes tags: dif data-role data-theme data theme data-icon data data-transition transition JQUERY MOBILE Exemplo de uso do data-* <li class="comentario" data-nome="Tecnologia em Sistemas para Internet" Internet data-cidade="Camboriú" data-estado="SC" data-pais="Brasil" data-lang="pt-br"> <b>Programação para DM</b> <span>Muito boa essa aula!</span> </li> /li JQUERY MOBILE Exemplo de uso do data-* .comentario [data-pais=Brasil] { color: yellow; background-color:green; } .comentario [data-pais=Japao] { color: l red; d background-color:white; } ... JQUERY Como pode-se ver, o conteúdo da página em si é envolto em uma div com atributo data-role="page". MOBILE Isso permite que o jQuery Mobile saiba em que parte o conteúdo está na marcação. Dentro da div "page", existem outros div data-role "header" "h d " , "content" " " e "footer" "f t " Todos eles são opcionais, embora provavelmente seja incluido pelo menos o div "content" content . JQUERY MOBILE <div data-role="header"> Essa div permite criar uma barra de ferramentas na parte superior p p da p página, g usada p para coisas como o título da página e os botões. Normalmente existe pelo menos um botão "Voltar" no qual o usuário á i pode d tocar t para retornar t à página á i anterior. t i Ao acrescentar A t d d dados d posição de i ã = "fixo" "fi " para o cabeçalho, pode-se ter certeza que o cabeçalho ficará sempre no topo da tela. tela JQUERY MOBILE <div data-role="content"> Contém o conteúdo principal da página, como texto, imagens, g botões, listas, formulários e assim p por diante. JQUERY MOBILE <div data-role="footer"> Cria uma barra de ferramentas na parte inferior da página, p g que é bastante útil p q para coisas como botões de função principal. Ao adicionar os dados de posição = "fixo" para o rodapé, pode-se d t certeza ter t que sempre fica fi na parte t inferior i f i da d tela. t l JQUERY MOBILE Página dentro de página Uma página HTML pode conter duas ou mais div “page“, cada uma com um id diferente <div data-role="page" id="home"> ... </div> <div data-role="page" id="about"> ... </div> JQUERY MOBILE Página dentro de página A página inicial possui link apontando para a página about, about enquanto que a segunda página tem um link apontando para a página home. JQuery Mobile automaticamente intercepta essas ligações de modo que cada div apareça como uma nóva página: <div data-role="page" id="home"> <div data-role="content"> <p> p <a href="#about">"Sobre" deste app...</a> </p> </div> </div> <div data-role="page" id="about"> <div data-role="content"> <p>Isto funciona! <a href="#home">Início</a> </p> </div> </div> / JQUERY MOBILE Transições de página JQuery Mobile permite aplicar diferentes efeitos de transição para uma nova página página. Para tanto, basta adicionar em cada link um atributo data-transition data transition <a href href="#about" #about data data-transition="flip">About</a> transition flip >About</a> Os valores possíveis estão na documentação da jQuery Mobile http://view.jquerymobile.com/1.3.0/docs/widgets/transitions/ j y g JQUERY MOBILE Caixas de diálogo Pode-se transformar uma página em Caixa de diálogo ao adicionar na tag de link o atributo data data-rel="dialog“. rel dialog . A caixa de dialogo aparecerá com cantos arredondados, margens e um fundo escuro. Também pode-se adicionar uma transição, de forma a demonstrar que está abrindo uma caixa de diálogo. <a href="#about" data-rel="dialog" datatransition="slideup">Sobre…</a> / JQUERY MOBILE Botões Botões são uma parte essencial de qualquer aplicativo baseado no toque. Eles são preferíveis aos links porque fornecem um alvo maior quando a intenção é tocar. Lembre-se do conceito do “Dedo gordo” Para a a ttransformar a so a u um link e em u um botão, basta ad adicionar co a o atributo data-role="button" na tag do link: <a href="#about" data-role="button" datatransition="slideup">Sobre…</a> JQUERY MOBILE Elementos de formulário O jQuery Mobile substitui automaticamente o padrão de controles em formulários HTML P.ex. campos de texto, caixas e listas de seleção; Controles personalizados que funcionam melhor com uma interface sensível ao toque e mais flexível; Caixas de seleção são feitas bem maiores pois elas são mais fáceis de tocar; JQUERY MOBILE Elementos de formulário O jQuery Mobile também registra rótulos e campos de formulário com base na largura de exibição do dispositivo. P.ex. se o display tem 480 pixels de largura, os rótulos são colocados acima i d dos campos para economizar i espaço h horizontal; i t l Em telas mais amplas, os rótulos são exibidos ao lado dos campos. JQUERY MOBILE Elementos de formulário Outro recurso interessante é o agrupamento de botões do tipo radio e checkbox em um fieldset, com atributo data-role="controlgroup"; jQuery Mobile automaticamente implemenenta estilos aos campos, observando b d o modo d como eles l estão tã agrupados, d sem iintervalos t l entre t cada campo e arredondando os cantos nos campos superior e inferior. JQUERY MOBILE Elementos de formulário Exemplo: Aula004-Exemplo04-Formularios.html JQUERY MOBILE Listas Exibições de lista são um recurso muito poderoso do jQuery Mobile; Elas permitem trabalhar um padrão de estilo não-ordenado ou d listas de li t ordenadas d d em uma variedade i d d d de fformas út úteis; i Para ativar uma lista regular em uma exibição de lista lista, adiciona-se o atributo data-role="listview" nas tags ul ou ol; A seguir são mostradas algumas das coisas que se pode criar usando exibições de lista... Aula004-Exemplo05-Listas html Aula004-Exemplo05-Listas.html JQUERY MOBILE Listas Uma lista simples de itens de texto, com uma caixa em torno de cada item; Uma lista de links - coloca-se uma tag link em um item da li t e o jQuery lista jQ adiciona di i automaticamente t ti t um ícone í de d seta t ('>' ) do lado direito de cada item da lista. JQUERY MOBILE Listas Listas aninhadas - para aninhar uma tag ul dentro de uma tag li o jQuery automaticamente cria uma "segunda" página para a lista incorporada, ligando a partir do original. Isto é muito útil para a criação de árvores de opções de menu, configurações e assim por diante; Listas de botões divididos - Ao colocar dois links dentro de uma tag li, pode-se criar um item da lista com uma barra de divisão vertical no lado direito do item. O usuário pode então tocar em qualquer lado (esquerdo ou direito) do item da lista para conseguir coisas diferentes (como a visualização ou compra); JQUERY MOBILE Listas Bolhas de contagem - ao incluir um elemento com uma classe de contagem em um item da lista, o jQuery cria um pequeno ícone de "bolha" no lado direito do item de lista contendo o conteúdo do elemento. Isso é ótimo para coisas como contagens de mensagens em listas de correio; Filtragem de pesquisa - ao adicionar o atributo datafilter="true" para uma tag ul ou ol, então a lista fica disponível p p para p pesquisa. q Uma caixa de texto "Filtrar resultados ..." aparece acima da lista, permitindo ao usuário diminuir as opções; Perfeito para grandes listas; JQUERY MOBILE Listas Divisores de lista para as listas com divisão em seções. Basta adicionar o atributo data-role="list-divider" para qualquer item da lista; Miniaturas e ícones – ao colocar um elemento img no início de um item da lista, o jQuery vai usar a imagem como uma miniatura da lista em escala de 80 x 80 pixels. Ao adicionar uma classe ui-li-icon para a img, o ícone terá escala de 16 x 16 pixels. JQUERY MOBILE Listas Veja mais detalhes em: Criando lista com jQuery Mobile – Parte 01 http://imasters.com.br/artigo/20192/jquery/criando lista com jquery mobile parte 01/ http://imasters.com.br/artigo/20192/jquery/criando-lista-com-jquery-mobile-parte-01/ Criando lista com jQuery Mobile – Parte 02 http://imasters.com.br/artigo/20272/mobile/criando-lista-com-jquery-mobile-parte-02/ JQUERY MOBILE Temas O estilo de cores cinza, preto e azul com Widgets arredondados produzido pelo jQuery Mobile permitem uma experiência iê i muito it agradável dá l Porém, a vida seria monótona se todos tivessem que usar o Porém mesmo estilo em todos os aplicativos móveis! JQUERY MOBILE Temas Por isso, jQuery Mobile permite criar temas que personalizam coisas como, por exemplo: Família de fontes Sombras Valores de raio de botões e caixas de canto Conjuntos de ícones JQUERY MOBILE Temas Cada tema pode conter até 26 amostras de cores diferentes (rotuladas de 'a' a 'z'), que controlam a cor de primeiro plano, cor de d ffundo, d gradiente. di t O tema padrão vem com 5 amostras. Normalmente, para fazer um elemento de página usar uma amostra particular, usa-se o atributo data-theme: Aula004-Exemplo06-Temas.html JQUERY MOBILE Eventos Pode-se dizer que são os eventos que tornam a linguagem JavaScript útil. Um script depende da ocorrência de um evento para realizar a ação nele prevista prevista. Toda oda vez e que oco ocorre e interação te ação co com u um docu documento e to web, eb, um u evento é disparado. P.ex. O toque em um link ou o arraste da tela caracterizam a ocorrência de um evento evento. JQUERY MOBILE Eventos Tornam mais fácil a construção de interfaces de usuário; jQuery Mobile adiciona alguns eventos específicos usados para detectar ações executadas em DM; P.ex: P ex: Pode-se Pode se usar o evento taphold para detectar se o usuário tocou e segurou o dedo em um elemento (1 segundo); O evento swipe ocorre quando o usuário toca um elemento, arrastando-o t d h i horizontalmente t l t para a esquerda d ou di direita it por uma distância no mínimo igual a 30px. Aula004-Exemplo07-Eventos.html REFERÊNCIAS Consulte: SILVA, M. S. jQuery Mobile: desenvolva aplicações web para dispositivos móveis com HTML 5, CSS3, Ajax, jQuery e jQuery UI São Paulo: Novatec, UI. Novatec 2012. 2012 Também pode consultar o material complementar no link: htt // http://www.ifc-camboriu.edu.br/~frozza/2013.1/pdm.html if b i d b/ f /2013 1/ d ht l