Как лучше сделать модальное окно на javascript?

Пользователь

от vicenta_kertzmann , в категории: JavaScript , 8 месяцев назад

Как лучше сделать модальное окно на javascript?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от urban_will , 8 месяцев назад

@vicenta_kertzmann 

Существует несколько способов создания модального окна на JavaScript, вот один из них:


HTML:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
Открыть модальное окно



  
    ×
    Модальное окно
    Содержимое модального окна...
  


CSS:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
/* Скрытие модального окна по умолчанию */
.modal {
  display: none; 
  position: fixed; 
  z-index: 1; 
  left: 0;
  top: 0;
  width: 100%; 
  height: 100%; 
  overflow: auto;
  background-color: rgba(0,0,0,0.4);
}

.modal-content {
  background-color: #fefefe;
  margin: 10% auto;
  padding: 20px;
  border: 1px solid #888;
  width: 80%;
}

.close {
  color: #aaa;
  float: right;
  font-size: 28px;
  font-weight: bold;
}

.close:hover,
.close:focus {
  color: black;
  text-decoration: none;
  cursor: pointer;
}


JavaScript:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
// Получение ссылок на элементы
var modal = document.getElementById("myModal");
var btn = document.getElementById("openModal");
var closeBtn = document.getElementsByClassName("close")[0];

// Функция для открытия модального окна
function openModal() {
  modal.style.display = "block";
}

// Функция для закрытия модального окна
function closeModal() {
  modal.style.display = "none";
}

// Обработчик клика на кнопке открытия
btn.onclick = function() {
  openModal();
}

// Обработчик клика на кнопке закрытия
closeBtn.onclick = function() {
  closeModal();
}

// Обработчик клика за пределами модального окна
window.onclick = function(event) {
  if (event.target == modal) {
    closeModal();
  }
}


Это простой пример модального окна с кнопкой для открытия и кнопкой для закрытия. При клике за пределами модального окна тоже будет происходить его закрытие. Вам также может понадобиться настроить стили для вашего модального окна в соответствии с вашими потребностями.