Всплывающие окна — распространенная функция веб-разработки, позволяющая отображать дополнительный контент или функции, не покидая текущую страницу. По умолчанию, когда вы открываете ссылку, она открывается в новой вкладке или окне. Однако в некоторых случаях вам может потребоваться открыть всплывающее окно в центре экрана, а не новую вкладку. В этой статье мы рассмотрим различные методы достижения этой цели с помощью JavaScript.
Метод 1: использование метода window.open()
Метод window.open() — это широко используемый подход для открытия всплывающих окон. Чтобы открыть всплывающее окно в центре, вы можете использовать следующий код:
function openPopupCenter(url, title, width, height) {
  const left = (window.screen.width - width) / 2;
  const top = (window.screen.height - height) / 2;
  window.open(url, title, `width=${width},height=${height},left=${left},top=${top}`);
}
// Example usage
openPopupCenter('https://example.com', 'Popup Window', 500, 400);
Метод 2: использование свойств screen.availWidth и screen.availHeight
Вы также можете использовать свойства screen.availWidth и screen.availHeight, чтобы вычислить центральное положение экрана и соответственно открыть всплывающее окно:
function openPopupCenter(url, title, width, height) {
  const left = (screen.availWidth - width) / 2;
  const top = (screen.availHeight - height) / 2;
  window.open(url, title, `width=${width},height=${height},left=${left},top=${top}`);
}
// Example usage
openPopupCenter('https://example.com', 'Popup Window', 500, 400);
Метод 3: совместное использование CSS и JavaScript
Другой подход — объединить CSS и JavaScript для центрирования всплывающего окна. Вот пример:
<!DOCTYPE html>
<html>
<head>
  <style>
    #popup {
      display: none;
      position: fixed;
      top: 50%;
      left: 50%;
      transform: translate(-50%, -50%);
      width: 500px;
      height: 400px;
      background-color: #fff;
      border: 1px solid #ccc;
    }
  </style>
  <script>
    function openPopupCenter() {
      const popup = document.getElementById('popup');
      popup.style.display = 'block';
    }
  </script>
</head>
<body>
  <button onclick="openPopupCenter()">Open Popup</button>
  <div id="popup">
    <!-- Popup content goes here -->
  </div>
</body>
</html>
Открытие всплывающего окна в центре вместо новой вкладки может улучшить взаимодействие с пользователем и обеспечить целенаправленное взаимодействие. В этой статье мы рассмотрели три различных метода достижения этой цели: использование метода window.open(), использование свойств screen.availWidth и screen.availHeight и сочетание CSS и JavaScript. Каждый метод имеет свои преимущества и может быть реализован с учетом ваших конкретных требований. Поэкспериментируйте с этими методами и выберите тот, который лучше всего соответствует вашим потребностям.
Применяя эти методы, вы можете создавать визуально привлекательные всплывающие окна, которые открываются в центре, обеспечивая удобство работы с вашими веб-приложениями.