"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como centralizar uma janela pop-up no navegador?

Como centralizar uma janela pop-up no navegador?

Publicado em 2024-11-22
Navegar:851

How to Center a Popup Window in the Browser?

Como posicionar uma janela pop-up precisamente no centro da tela

Centrar uma janela pop-up criada usando a função window.open do JavaScript no tela é essencial para uma ótima experiência do usuário. As coordenadas exatas dependem da resolução da tela, portanto, é necessária uma solução dinâmica.

Solução: utilize uma função de monitor único/duplo

Uma solução robusta que acomoda ambos e configurações de monitor duplo são fornecidas abaixo:

const popupCenter = ({ url, title, w, h }) => {
    // Determine the positions based on screen resolution
    const dualScreenLeft = window.screenLeft || window.screenX;
    const dualScreenTop = window.screenTop || window.screenY;

    const width = window.innerWidth || document.documentElement.clientWidth || screen.width;
    const height = window.innerHeight || document.documentElement.clientHeight || screen.height;

    // Adjust for system zoom
    const systemZoom = width / window.screen.availWidth;

    // Calculate the centered coordinates
    const left = (width - w) / 2 / systemZoom   dualScreenLeft;
    const top = (height - h) / 2 / systemZoom   dualScreenTop;

    // Open the popup window with the calculated dimensions and positioning
    const newWindow = window.open(url, title,
        `
        scrollbars=yes,
        width=${w / systemZoom},
        height=${h / systemZoom},
        top=${top},
        left=${left}
        `
    );

    if (window.focus) newWindow.focus();
};

Exemplo de uso:

popupCenter({ url: 'http://www.xtf.dk', title: 'xtf', w: 900, h: 500 }); 

Créditos e Fonte:

Esta solução, originalmente de http://www.xtf.dk/2011/08/center-new-popup-window-even -on.html, lida efetivamente com a centralização de janelas pop-up para uma variedade de configurações de tela.

Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3