×
Utilizando a API Popover: Simplificando Janelas Modais em Seu DOM com HTML e JavaScript

A API de Popover é uma adição recente ao HTML e JavaScript, trazendo um conjunto de APIs e atributos HTML que ajudam a criar janelas “modais” dentro do seu DOM de maneira simplificada. Esta funcionalidade é especialmente útil para diversas características, tais como:

  • Caixas de login popup
  • Mensagens Toast
  • Sidebars de menu

Tradicionalmente, esses elementos exigiriam bastante CSS, incluindo posicionamento absoluto e gerenciamento de z-index. Contudo, a API de Popover simplifica significativamente esse processo.

Declarando Elementos Popover

Os elementos popover são declarados definindo o atributo popover no HTML. Esse atributo pode ser usado em conjunto com outros atributos para controlar o comportamento do popover.

Configuração Declarativa

Você pode configurar um popover de forma declarativa usando o atributo HTML popovertarget. Este atributo especifica qual popover deve ser aberto ou alternado. Por exemplo:





<button id="toggleBtn" popovertarget="mypopover">Alternar Popover</button>
<div id="mypopover" popover="auto">Conteúdo do Popover</div>

Configuração Programática

Alternativamente, você pode configurar um popover de forma programática usando métodos JavaScript. Aqui está um exemplo de como fazê-lo:















const popover = document.getElementById("mypopover");
const toggleBtn = document.getElementById("toggleBtn");

const popoverSupported = supportsPopover();

if (popoverSupported) {
  popover.popover = "auto";
  toggleBtn.popoverTargetElement = popover;
  toggleBtn.popoverTargetAction = "toggle";
} else {
  console.log("API de Popover não suportada.");
}

Visite este recurso para aprender mais sobre como implementar a API de Popover de forma eficaz.

Controlando o Comportamento do Popover

A API de Popover permite controlar o comportamento dos popovers através de vários métodos, incluindo:

  • Dispensa Leve: No estado automático, o popover pode ser “dispensado levemente” ao clicar fora dele ou pressionar a tecla Esc.
  • Vários Popovers: Geralmente, apenas um popover automático pode ser exibido de cada vez, mas há exceções para popovers automáticos aninhados.
  • Estado Manual: No estado manual, o popover não pode ser “dispensado levemente”, embora botões declarativos de mostrar/ocultar/alternar ainda funcionem. Vários popovers independentes podem ser exibidos simultaneamente.

Uso de Exemplo

Aqui está um exemplo mais detalhado de como configurar um popover programaticamente:























function supportsPopover() {
  return HTMLElement.prototype.hasOwnProperty("popover");
}

// Obter elementos
const popover = document.getElementById("mypopover");
const toggleBtn = document.getElementById("toggleBtn");

// Verificar se a API de Popover é suportada
const popoverSupported = supportsPopover();

if (popoverSupported) {
  // Configurar atributos do popover
  popover.popover = "auto";
  toggleBtn.popoverTargetElement = popover;
  toggleBtn.popoverTargetAction = "toggle";
} else {
  // Tratar caso não suportado
  toggleBtn.style.display = "none";
}

Para mais exemplos e casos de uso, confira este artigo sobre a API de Popover.

Funcionalidades Adicionais

Além disso, a API de Popover inclui vários exemplos e casos de uso, como:

  • Exemplo Básico de Popover Declarativo: Demonstra um popover em estado automático básico.
  • Exemplo de Desfocar o Plano de Fundo do Popover: Mostra como você pode adicionar estilização ao conteúdo por trás do popover usando o pseudo-elemento ::backdrop.
  • Exemplo de Vários Popovers Automáticos: Demonstra que, geralmente, apenas um popover automático pode ser exibido de uma vez.
  • Exemplo de Vários Popovers Manuais: Demonstra que vários popovers manuais podem ser exibidos simultaneamente, mas não podem ser dispensados levemente.

Aproveitando a API de Popover, os desenvolvedores podem reduzir significativamente a quantidade de código necessária para criar janelas de estilo modal, tornando suas aplicações mais eficientes e fáceis de manter.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Autor

flpchapola@hotmail.com

Posts relacionados

15 Anos de Dicas de Programação em 60 Segundos: Aprenda a Codificar com Maestria!

15 Anos de Dicas de Programação em 60 Segundos: Aprenda a Codificar com Maestria!

Imagine que você está prestes a embarcar em uma jornada incrível de 15 anos na programação. Neste artigo, exploraremos conselhos essenciais que...

Leia tudo
"Transforme Reclamação em Solução: A Mentalidade que Faz a Diferença!"

“Transforme Reclamação em Solução: A Mentalidade que Faz a Diferença!”

Reclamar é fácil e não custa nada. Resolver, por outro lado, exige esforço, criatividade e tempo. Essa diferença fundamental pode transformar a...

Leia tudo

LANGFLOW – O Flaw de Segurança Mais Idiota da IA: Uma Análise Profunda

Bem-vindo ao nosso mergulho profundo em um dos erros de segurança mais intrigantes que encontramos no mundo da inteligência artificial. Hoje, vamos...

Leia tudo
"Construindo o Melhor: Uma Abordagem Estratégica Além do Técnico"

“Construindo o Melhor: Uma Abordagem Estratégica Além do Técnico”

Quando falamos em construir o “melhor” software, muitas vezes nos concentramos apenas na técnica. No entanto, o desenvolvimento de software é um...

Leia tudo
"Desvendando o Mito: Estudar 6 Meses para Ganhar R$10k como Desenvolvedor!"

“Desvendando o Mito: Estudar 6 Meses para Ganhar R$10k como Desenvolvedor!”

Por Que os Fundamentos são Mais Importantes no Desenvolvimento de Software Olá, pessoal! Hoje vamos abordar um tema essencial para qualquer desenvolvedor:...

Leia tudo