Esse conteúdo foi desenvolvido para ser melhor visualizado em navegadores modernos.
Para um melhor aproveitamento, por favor atualize o seu navegador ou utilize o Chrome, Firefox ou Edge atualizado.
Esse conteúdo foi desenvolvido para ser melhor visualizado em navegadores modernos.
Para um melhor aproveitamento, por favor atualize o seu navegador ou utilize o Chrome, Firefox ou Edge atualizado.
O componente de popup foi desenvolvido para facilitar a incorporação de chamadas de conteúdos em janelas flutuantes reduzindo a quantidade de códigos pelo designer e desenvolvedor.
O sistema permite uma enorme variedade de usos, que de modo geral podem ser divididos pela fonte desse conteúdo:
Na própria página, mas fora do corpo principal do conteúdo. Também conhecido como comentários, exemplo, etc.
Em uma página externa, importando o seu conteúdo. Conhecido geralmente por verbetes.
Em uma página externa, sendo incorporado o conteúdo. Conhecido geralmente por embed, Iframe ou, quando o próprio curso em relembrando.
Uma imagem, exibindo ampliada. Conhecido geralmente por lightbox ou zoom
Além das opções descritas a API foi criada para permitir uma forte personalização de uso e acesso diretamente por programação. No fim desse documento voltaremos a detalhar cada uma das propriedades e formas de uso.
O comportamento de cada tipo de popup é detectado pelo sistema baseado nos atributos e no tipo de url inserida na tag de chamada, contudo o resultado pode ser forçado definindo um valor para o atributo data-type
. Veja mais na sessão sobre detalhes para programação.
O modo mais simples de utilização é inserir o texto do conteúdo dentro da própria tag.
<a data-popup="true" href="" data-content="Uma simples definição ou texto" data-size="sm" data-quickclose="true" > Abre um pop-up interno </a>
Outro modo simples de utilizar, mas permitindo links internos, é suprimir o atributo data-quickclose.
No atributo de conteúdo( data-content ), ficar atento para não utilizar internamente o mesmo padrão de aspas que as do atributo em si.
<a data-popup="true" href="" data-content="<section><article class='box box-default'><p>Uma simples definição ou <a href='#''> texto </a></p></article></section>" data-size="sm" data-draggable="true" > Abre um popover simples </a>
Em caso de elementos mais complexos, mas de uso único, o bloco pode ser criado na própria página, na área com ID EXTRAS
, na parte inferior do template. Essa área não é visível até ser chamada por código, mas é pré-carregada.
A identificação do elemento a ser carregado se dá na propriedade data-href
e aceitam qualquer seletor jQuery.
<a data-popup="true" data-href="#filmete-teste" href="#" data-size="md" data-draggable="true" > Abre um pop-up de uso único </a>
No caso de conteúdos compartilhados essa opção importa o conteúdo e a insere no corpo da página utilizando e disponibilizando seus recursos.
Cuidado para evitar conflitos entre os dois escopos. Em caso de dúvidas, na página Infográficos existem padrões para tentar mitigar esse risco e podem ser aproveitadas.
Caso o conteúdo compartilhado seja interno ao curso, ele deve ficar na pasta extras na raíz do curso.
<a data-popup="true" href="#" data-href="./extras/extra_1.html" data-size="md" data-draggable="true" > Abre um pop-up de conteúdo externo importado </a>
Outra solução para conteúdos compartilhados ou externos é a incorporação do conteúdo sem incorporar no corpo da página. Essa opção isola os recursos e evita conflitos, mas permite menos controle do framework sobre o conteúdo da página.
O conteúdo sejá acessado via Iframe
e o desenvolvimento deve ter suas restrições em mente.
<a data-popup="true" href="#" data-href="https://sv.www5.fgv.br/fgvonline/framework_html5/framework_nm_v3/docs/index.html" data-size="lg" data-draggable="true" > Abre um pop-up de conteúdo externo incorporado </a>
Um uso adicional do popup é criar um efeito de lightbox ou zoom em imagens.
A referência utilizada pode ser o mesmo arquivo, ou até outro com maior resolução ou mais detalhes.
<a data-popup="true" href="#" data-href="./img/sample.jpg" data-size="lg" > Abre um pop-up com a imagem </a>
Possibilita a importação de um elemento específico de uma outra página do mesmo domínio.
Além do link dentro de data-href
precisar ser do mesmo domínio, é necessário também especificar o seletor JQuery depois da url, utilizando um espaço para separa-los, como no exemplo ao lado.
O uso do seletor JQuery se dá da mesma forma do Uso Único.
No caso de refenciar uma citação no ECLASS não é necessário acrecentar o seletor JQuery depois da url. Neste caso a seleção do Article é feita automaticamente. Por exemplo:
href="https://ls.cursos.fgv.br/d2l/lor/viewer/viewFile.d2lfile/6606/134384,0/Patrimônio.html"
<a data-popup="true" href="#" data-href="https://sv.www5.fgv.br/fgvonline/framework_html5/framework_nm_v3_1/docs/componentes.html #tabs" data-size="lg" data-draggable="true" > Abre um pop-up com a imagem </a>
A API de Pop-up permite tanto chamadas dentro do conteúdo como a criação e controle de pop-ups via programação através do objeto Popups em nm.nm_ui.popups
, podendo ser criados pelo método abaixo. e recebendo um objeto Popup como retorno.
nm.nm_ui.popups.create( props /* $elem ou objeto de propriedades */, propsExtras /* [ objeto de propriedades ] */ )
Cada opção abaixo pode ser declada no objeto ou no caso de um elemento, com o atributo com o mesmo nome com o prefixo data-.
{ //CONTEÚDO content: false, // define uma string como conteúdo href:"#body", // define uma referência, interna ou externa ao documento, como conteúdo //APARÊNCIA size: "sm", // define a classe de tamanho [xs,sm,md,lg] overlay: true, // demandar a ativação do overlay margin: 15, // distância mínima das laterais do parent: opção STAGE //POSIÇÃO x: null, // posição do ponto central no eixo X y: null, // posição do ponto central no eixo Y target: false, // elemento referência para centralizar autocenter: true, // scroll a página para centralizar a página ao popup anchor: 'absolute', // define se o popup será absulto ou fixo, em relação a SCROLL //FECHAMENTO closebutton: true, // permite a criação do botão de fechar quickclose: false, // permite o fechamento ao click em qualquer perte do popup remoteclose: true, // permite que o popup seja fechado pelo sistema de gerenciamento, como no click do overlay //COMPORTAMENTOS draggable: false, // define se a popup será carregável, caso valor TRUE, elemento H2, caso STRING, usa como seletor para definir o objeto autodestroy: true, // define se o popup deve remover a sua referência do DOM depois de fechar autoopen: true, // inserir no DOM e exibir popup ao ser criado preload: false, // carregar conteúdo externo antes de inserir no DOM confirm: function( val ){}, // callback para alerta, confirm e prompt caso de sucesso cancel: function( val ){}, // callback para alerta, confirm e prompt caso cancelado stage: $("body"), // elemento DOM onde o popup será inserido };
$(this).click(function(e){ console.log(e) var popupId = $(this).data('popup'); popupId = popupId ? popupId.id : false ; var opts = { id: popupId, x: e.pageX, y: e.pageY }; var href = $(this).data('href') || $(this).attr('href'); try{ if( $(href).prop("tagName") == "IMG" ){ opts.type = "3"; href = $(href).attr('src'); } }catch(e){} if( href ) opts.href = href; $(this).data( 'popup', nm.nm_ui.popups.create( $(this), opts ) ); return false; });
Criar uma janela de alerta.
<a data-popup="true" href="" data-content="Só um aviso." data-size="sm" data-quickclose="true" data-type="alert" > Abre um alerta simples </a>
Criar uma janela de confirmação.
<a data-popup="true" href="" data-content="Abre uma caixa de confirmaçção simples" data-size="sm" data-quickclose="true" data-type="confirm" > Abre um pop-up interno </a>
Criar uma janela de prompt.
<a data-popup="true" href="" data-content="Uma simples definição ou texto" data-size="sm" data-quickclose="true" data-type="prompt" > Abre um pop-up interno </a>
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
Sub-popup, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore.