Как расположить всплывающее окно точно по центру экрана
Центрирование всплывающего окна, созданного с помощью функции JavaScript window.open на Экран необходим для оптимального взаимодействия с пользователем. Точные координаты зависят от разрешения экрана, поэтому требуется динамическое решение.
Решение: использовать функцию одного/двух мониторов
Надежное решение, позволяющее использовать как одиночный, так и двойной монитор. и настройки двух мониторов приведены ниже:
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();
};
Пример использования:
popupCenter({ url: 'http://www.xtf.dk', title: 'xtf', w: 900, h: 500 });
Авторы и источник:
Это решение взято с http://www.xtf.dk/2011/08/center-new-popup-window-even -on.html эффективно обрабатывает центрирование всплывающих окон для различных конфигураций экрана.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3