首页  >  文章  >  web前端  >  如何使用 JavaScript 将弹出窗口置于屏幕中央?

如何使用 JavaScript 将弹出窗口置于屏幕中央?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-10-30 10:30:02815浏览

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