Dialog Widget

author
5 minutes, 3 seconds Read
Nota: Os diálogos são depreciados a partir do jQuery Mobile 1.4.0 e serão removidos na versão 1.5.0. A opção dialog fornecida pela extensão page.dialog do widget página permite que você estilize uma página como um diálogo, no entanto, o manuseio especial de navegação será removido. Você também pode considerar implementar diálogos usando widgets popup.

Ainda página pode ser apresentada como um diálogo modal adicionando o atributo data-rel="dialog" ao link de âncora da página. Quando o atributo “diálogo” é aplicado, o framework adiciona estilos para adicionar cantos arredondados, margens ao redor da página e um fundo escuro para fazer o “diálogo” parecer suspenso acima da página.

1

Pode abrir um diálogo programmaticamente chamando o $.móvel.método changePage:

1
2
3
4
4
5

Transições

Por defeito, o diálogo será aberto com uma transição ‘pop’. Como todas as páginas, você pode especificar qualquer transição de página que quiser no diálogo, adicionando o atributo data-transition ao link. Para que se sinta mais parecido com o diálogo, nós recomendamos especificar uma transição de “pop”, “slidown” ou “flip”.
Os valores possíveis incluem: fade, pop, flip, turn, flow, slidefade, slide, slideup, slidefown, none.

1

Closing dialogs

Quando qualquer link é clicado dentro de um diálogo, a estrutura fechará automaticamente o diálogo e fará a transição para a página solicitada, tal como se o diálogo fosse uma página normal. No entanto, os diálogos também podem ser encadeados, como explicado abaixo em “Diálogos Encadeados”. Da mesma forma, um link que abre um popup também deixará o diálogo no lugar.

Se o diálogo tiver um cabeçalho, a estrutura irá adicionar um botão de fechamento no lado esquerdo do cabeçalho. Você pode alterar a posição adicionando data-close-btn="right" ao caixa de diálogo. Se você não quiser um botão fechar no cabeçalho ou adicionar um botão fechar personalizado, você pode usar data-close-btn="none".

Para criar um botão “cancelar” em uma caixa de diálogo, basta criar um link para a página que acionou a caixa de diálogo para abrir e adicionar o atributo data-rel="back" ao seu link. Este padrão de link para a página anterior também é utilizável em dispositivos não-JS.

Para links gerados por JavaScript, você pode simplesmente definir o atributo href como “#” e usar o atributo data-rel="back". Você também pode chamar o método close() da caixa de diálogo para fechar programmaticamente as caixas de diálogo, por exemplo: $( ".ui-dialog" ).dialog( "close" ).

Configurando o texto do botão fechar

Apenas como o plugin de página, você pode definir o texto do botão fechar de um diálogo através de uma opção ou atributo de dados. A opção pode ser configurada para todos os diálogos ligando ao evento mobileinit e definindo a propriedade $.mobile.dialog.prototype.options.closeBtnText a uma string à sua escolha, ou você pode colocar o atributo de dados data-close-btn-text para configurar o texto a partir da sua marcação.

História &Comportamento do botão fechar

Desde que os diálogos são tipicamente usados para suportar ações dentro de uma página, a estrutura não inclui diálogos no rastreamento do histórico do estado do hash. Isto significa que as caixas de diálogo não aparecerão na cronologia do histórico de navegação quando o botão Voltar é clicado. Por exemplo, se você estiver em uma página, clique em um link para abrir uma caixa de diálogo, feche a caixa de diálogo, depois navegue para outra página, se você clicar no botão Voltar do navegador nesse ponto você navegará de volta para a primeira página, não para a caixa de diálogo.

Diálogos de Corrente

Nota: Se uma caixa de diálogo abrir outra caixa de diálogo (encadeamento), fechar a última com um link do tipo data-rel="back" sempre navegará para a caixa de diálogo anterior até que a página raiz do tipo data-role="page" seja alcançada. Isto garante uma navegação consistente entre diálogos.

Estilização &tema

Dialogs podem ser estilizados com diferentes amostras de temas, como qualquer página, adicionando atributos data-theme ao cabeçalho, conteúdo, ou recipientes de rodapé.

Por padrão os diálogos têm cantos arredondados. Os cantos de opção podem ser definidos como falsos adicionando data-corners="false" ao contentor de diálogo:

Os diálogos parecem estar flutuando acima de uma camada de sobreposição. Esta sobreposição adota a cor de conteúdo ‘a’ em swatch por padrão, mas o atributo data-overlay-theme pode ser adicionado ao invólucro da página para definir a sobreposição para qualquer letra swatch.

Dialogs também podem ser usados mais como uma folha de controle para oferecer múltiplos botões se você simplesmente remover a margem superior do elemento recipiente interno do diálogo. Por exemplo, se a sua página de diálogo tivesse uma classe de my-dialog, você poderia adicionar este CSS para fixar esse diálogo no topo: .ui-dialog.my-dialog .ui-dialog-contain { margin-top: 0 }, ou você poderia simplesmente aplicar esse estilo a todos os diálogos com .ui-dialog .ui-dialog-contain { margin-top: 0 }.

Largura e margens do Dialog

Por uma questão de legibilidade, os diálogos têm um padrão width de 92,5% e um max-width de 500 pixels. Há também um topo de 10% margin para dar às caixas de diálogo uma margem superior maior em telas maiores, mas colapsa para uma margem pequena em smartphones. O recipiente interno do diálogo é deslocado para o top com 15px para ocultar o estilo de canto se um diálogo for usado como uma folha de controle (veja acima). Para anular estes estilos, adicione a seguinte regra de anulação de CSS à sua folha de estilo e aperte-a conforme necessário:

1
2
3
4
5
6
7
8

Similar Posts

Deixe uma resposta

O seu endereço de email não será publicado.