首頁 >web前端 >js教程 >如何使用 JavaScript 將彈出視窗置於螢幕中央?

如何使用 JavaScript 將彈出視窗置於螢幕中央?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-10-30 10:30:02873瀏覽

How Can I Center a Popup Window on the Screen Using JavaScript?

讓彈出視窗居中

讓彈出視窗在螢幕上居中可以使用 JavaScript 的 window.open 函數來實現。視窗出現的確切座標(x 和 y)會根據目前螢幕解析度而有所不同。

跨平台解決方案

以下解決方案適用於兩者單顯示器和雙顯示器設定:

<code class="js">const popupCenter = ({ url, title, w, h }) => {
  // Adjust for dual-screen positions
  const dualScreenLeft = window.screenLeft || window.screenX;
  const dualScreenTop = window.screenTop || window.screenY;

  // Get the screen size
  const width = window.innerWidth || document.documentElement.clientWidth || screen.width;
  const height = window.innerHeight || document.documentElement.clientHeight || screen.height;

  // Calculate the scaling factor
  const systemZoom = width / window.screen.availWidth;

  // Calculate the window's position
  const left = (width - w) / 2 / systemZoom + dualScreenLeft;
  const top = (height - h) / 2 / systemZoom + dualScreenTop;

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

  // Focus the new window
  if (window.focus) newWindow.focus();
};</code>

使用範例

<code class="js">popupCenter({
  url: 'http://www.xtf.dk',
  title: 'xtf',
  w: 900,
  h: 500,
});</code>

Credit

此解決方案已改編來自http://www.xtf.dk/2011/08/center-new-popup -window-even-on.html。

以上是如何使用 JavaScript 將彈出視窗置於螢幕中央?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn