Maison >interface Web >js tutoriel >Comment centrer une fenêtre contextuelle sur l'écran dans les configurations à un ou deux moniteurs ?

Comment centrer une fenêtre contextuelle sur l'écran dans les configurations à un ou deux moniteurs ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-10-31 19:11:02510parcourir

How to Center a Popup Window on Screen in Both Single and Dual Monitor Setups?

Comment centrer une fenêtre contextuelle à l'écran

Pour centrer une fenêtre contextuelle à l'écran, nous pouvons utiliser la fonction window.open de JavaScript et quelques calculs supplémentaires pour déterminer la valeur exacte Coordonnées x et y en fonction de la résolution actuelle de l'écran.

Fonction de moniteur simple/double

Pour les configurations à un et deux moniteurs, la fonction suivante centre efficacement la fenêtre contextuelle horizontalement tout en tenant compte de la possibilité qu'elle ne soit pas entièrement maximisée :

<code class="javascript">const popupCenter = ({url, title, w, h}) => {
  // Adjust for dual-screen position
  const dualScreenLeft = window.screenLeft !== undefined ? window.screenLeft : window.screenX;
  const dualScreenTop = window.screenTop !== undefined ? window.screenTop : window.screenY;

  // Calculate available screen dimensions
  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 centered coordinates
  const left = (width - w) / 2 / systemZoom + dualScreenLeft
  const top = (height - h) / 2 / systemZoom + dualScreenTop

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

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

Exemple d'utilisation

Pour centrer une fenêtre contextuelle à une résolution d'écran de 900x500 avec le titre "XTF" :

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

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn