squadbrodyaga
@squadbrodyaga
帆は風を変えた

Как закрыть по клику на его ::backdrop?

Здравствуйте, вообщем только что узнал, что существует HTML тег <dialog>, как я понял,
он нужен, чтобы создавать модальные окна.

При открытии у этого тега появляется свой задний фон, его можно стилизовать, но можно ли по клику на этот фон,
закрыть само модальное окно?

https://codepen.io/squadcoder/pen/PobYgvo?editors=0110
  • Вопрос задан
  • 295 просмотров
Решения вопроса 2
JRK_DV
@JRK_DV
Рецепты https://codepen.io/jrkdv/full/LKLXdq
похоже что нельзя

но можно контент поместить в слой
<dialog class="popup">
  <div class="layer">
    ...
  </div>
<dialog>


а у слоя останавливать всплывающие события => тогда можно отловить клики вне модалки, примерно так:
document.querySelector('.layer').addEventListener('click', (e) => e.stopPropagation());
document.querySelector('.popup').addEventListener('click', (e) => e.target.close());
Ответ написан
Exploding
@Exploding
wtf?
Как-то так можно
$(document).on("click", function(e){
	if(!$(e.target).closest("dialog").length)
		$("dialog")[0].close();
});
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы