@Alex_vs_Predator
Начинающий веб-разработчик

Модальное окно на чистом JS — что можно использовать кроме объекта window?

Всем привет!
Сделал модальное окно на чистом JS

НО тут есть проблемка...
window.onclick = function (event) {
    if (event.target == modal) {
        modal.style.display = "none";
    }
}

Нужно написать скрипт без использования объекта window + нельзя использовать event...
Можете подсказать идею?

Сам скрипт
var button = document.getElementById("button");
var modal = document.getElementById('modal');
var close = document.getElementById('close');

/* Открываем модальное окно */
button.onclick = function () {
    modal.style.display = "flex";
};
/* Закрываем модальное окно */
close.onclick = function () {
    modal.style.display = "none";
};
/* Закрываем модальное окно по клику на маску*/
window.onclick = function (event) {
    if (event.target == modal) {
        modal.style.display = "none";
    }
}


Спасибо!
  • Вопрос задан
  • 2115 просмотров
Решения вопроса 1
@Cruper
web-падаван
https://jsfiddle.net/xa6d2cvb/5/

Или, если нет подложки, то вешать обработчик клика на контенте, когда появляется модальное окно
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
Stalker_RED
@Stalker_RED
document.body, например.
или, если есть оверлей с затемнением, можно слушать клики на нем.

нельзя использовать event
тебя заперли в подвале в 2007?

Кстати, в твоем текущем варианте есть ошибка:
/* Закрываем модальное окно по клику на маску*/
window.onclick = function (event) {

Это же клик по window, а не по маске.
Ответ написан
Комментировать
Kozack
@Kozack Куратор тега JavaScript
Thinking about a11y
<dialog></dialog>
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы