Задать вопрос
@usedtoknow

Как закрыть модальное окно при клике по экрану?

Всем привет!
у меня еще вопрос:

Я пытаюсь сделать модальное окно, чтобы оно вылезало при клике, а убиралось при клике вне ее границ, но почему-то оно не убирается, как я только не пробовал.

https://www.w3schools.com/code/tryit.asp?filename=...

пожалуйста, помогите. И еще, скажите, правильно ли это - совать само окно в список li (щелчок по нему должен провоцировать модальное окно) или само по себе модально окно обычно находится где-нибудь в конце файла ?

Спасибо
  • Вопрос задан
  • 8519 просмотров
Подписаться 1 Средний 16 комментариев
Пригласить эксперта
Ответы на вопрос 4
@AlexaZem
Можно закинуть ваше модальное окно в какой нибудь оверлей, типа

<div class="overlay">
   <div class="your-dialog"></div>
</div>

.overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 1;
}
.your-dialog {
     z-index: 2;
}


Повесить на клик по .overlay - закрыть диалоговое окно.
на само окно - отмену всплытия событий (e.stopPropagation(), e.stopImediatePropagation)
Может где сделал опечатку, но идея думаю ясна
Ответ написан
@sdgroup14
На работоспособность не проверял, но логика такая... Чтоб проверить по клику на сайт, что таргетом не является ваша кнопка и модалка

<style>
.modal {
  display: none
}

.modal.__show{
  display: block
}
</style>
<button type="button" class="btn">toggle Modal</button>

<div class="modal" >Modal text</div>


$('.btn').on('click', function(){
  $('.modal').toggleClass('__show');
})

$('body').on('click', function(e){
  if(e.target !== $('.modal') && e.target !== $('.btn') && $('.modal').hasClass('__show') ){
    $('.modal').removeClass('__show');
  }
})
Ответ написан
@alekseydemyanenko
Все с коробки,
https://fancyapps.com/fancybox/3/
Ответ написан
Комментировать
@Nebritbij
Поищи в сети PopUp окна. Инфы много, + туда немного js и прикольные вещи получаются
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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