So positionieren Sie ein Popup-Fenster genau in der Mitte des Bildschirms
Zentrieren eines mit der Funktion window.open von JavaScript erstellten Popup-Fensters auf dem Der Bildschirm ist für ein optimales Benutzererlebnis unerlässlich. Die genauen Koordinaten hängen von der Bildschirmauflösung ab, daher ist eine dynamische Lösung erforderlich.
Lösung: Nutzen Sie eine Single-/Dual-Monitor-Funktion
Eine robuste Lösung, die beides unterstützt und Dual-Monitor-Setups sind unten angegeben:
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();
};
Verwendungsbeispiel:
popupCenter({ url: 'http://www.xtf.dk', title: 'xtf', w: 900, h: 500 });
Credits und Quelle:
Diese Lösung stammt ursprünglich von http://www.xtf.dk/2011/08/center-new-popup-window-even -on.html übernimmt effektiv die Zentrierung von Popup-Fenstern für eine Vielzahl von Bildschirmkonfigurationen.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3