jQuery Mobile - Painéis

Descrição

Painel básico que se move do lado esquerdo ou direito da tela para exibir o conteúdo usando data-role = "panel" atributo.

Exemplo

O exemplo a seguir descreve o uso do painel na estrutura jQuery Mobile.

<!DOCTYPE html>
<html>
   <head>
      <title>Panel</title>
      <meta name = "viewport" content = "width = device-width, initial-scale = 1">
      <link rel = "stylesheet" href = "https://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.css">
      <script src = "https://code.jquery.com/jquery-1.11.3.min.js"></script>
      <script src = "https://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.js"></script>
   </head>

   <body>
      <div data-role = "page" id = "page1">
         <div data-role = "panel" id = "panel1">
            <h2>This is Panel Header</h2>
            <p>You can close this panel by pressing the Esc key or by swiping.</p>
         </div>
         
         <div data-role  =  "header">
            <h2>Header</h2>
         </div>
         
         <div data-role  =  "main" class  =  "ui-content">
            <p>Click on the button to open Panel.</p>
            <a href = "#panel1" class = "ui-btn ui-btn-inline">Open Panel</a>
         </div>
         
         <div data-role = "footer">
            <h2>Footer</h2>
         </div>
      </div>
   </body>
</html>

Resultado

Vamos realizar as seguintes etapas para ver como funciona o código acima -

  • Salve o código html acima como jqm_panels.html arquivo na pasta raiz do servidor.

  • Abra este arquivo HTML como http: //localhost/jqm_panels.html e a seguinte saída será exibida.

Marcação do painel

Você pode escrever o conteúdo do painel dentro de uma página e é irmão do cabeçalho, do conteúdo e dos elementos do rodapé. Você não pode escrever a marcação do painel fora da página. Terá o seguinte formato.

<div data-role = "page">
   <div data-role = "panel" id = "panel1">
      <!-- panel content -->
   </div><!-- end of panel -->
   
   <!-- header -->
   <!-- content -->
   <!-- footer -->
</div><!-- end of page -->

Conteúdo Dinâmico

Você pode adicionar dinamicamente o conteúdo a um painel ou ocultar o conteúdo quando o painel estiver aberto, usando o updatelayout evento no painel conforme mostrado no formato a seguir.

$( "#panel1" ).trigger( "updatelayout" );

Ele verificará a altura do conteúdo do painel e se a altura do painel exceder, então definirá a altura do conteúdo usando min-height atributo e a posição do painel usando data-position-fixed = "true" atributo.

Abrindo um Painel

Você pode abrir o painel configurando hrefatributo ao id do painel, que vincula o link ao painel. Ele abrirá o painel quando você clicar no link e feche o painel clicando nele novamente.

Fechando um Painel

Você pode fechar o painel clicando fora do painel, deslizando para a esquerda ou direita ou pressionando a tecla Esc. O efeito de deslizar pode ser desativado usando odata-swipe-close = "false"atributo. Às vezes, você pode fechar o painel clicando fora dele; para que você possa evitar essa ação adicionando odata-dismissible = "false"para o painel. Também é possível fechar o painel adicionando odata-rel = "close" atributo para o painel.

Animações de painel

Você pode usar animações no painel se seu navegador oferecer suporte para transformações 3D. Use otranslate3d(x,y,z)O CSS se transforma para animar o painel. Se você não quiser usar animações, use odata-animate = "false" atributo para o recipiente do painel.

Posicionamento do painel

Ele especifica a posição do painel na página e exibe o painel com o position:absolutePropriedade CSS. Use oposition:fixed atributo no painel para exibir o conteúdo e não importa o quanto você rola a página usando dataposition-fixed = "true"atributo para o painel. Se o conteúdo for maior que não cabe na área da página, a estrutura exibirá o conteúdo sem posicionamento fixo.

Painéis de Estilo

A estrutura do jQuery Mobile fornece estilos para os painéis. Por padrão, os painéis serão em estilos simples, mas você pode personalizá-los de acordo com os critérios do usuário. Você pode incluir o conteúdo em um div usando oui-panel-innerclasse que inclui 15 pixels de preenchimento. Você pode definir o plano de fundo do tema para os painéis usando diferentes tipos de temas. O tema padrão do painel é "c"e defina o tema do painel usando o data-themeatributo. Se você não quiser definir o tema, use odata-theme = "none" atributo para usar suas próprias classes para estilizar o painel.

Tornando o Painel Responsivo

A estrutura do jQuery Mobile torna o painel responsivo e permite que o menu do painel e a página sejam usados ​​juntos. Você pode usar um ponto de interrupção específico para uma página ou usar a classe ="ui-responsive-panel" ponto de interrupção predefinido para o contêiner de página.