Популярный способ сделать это с наложением. Когда вы создаете div
всплывающее окно, также создайте <div id="overlay">
сразу под ним, который занимает весь экран:
div#overlay {
position: fixed;
left: 0;
right: 0;
top: 0;
bottom: 0;
}
При желании вы можете использовать это наложение для затемнения всего другого содержимого, например, background: #000
и opacity: 0.5
.
После того, как вы создали свой JavaScript, чтобы добавить этот оверлей прямо под всплывающим окном, добавьте в него прослушиватель кликов. Когда пользователь нажмет на оверлей, вы узнаете, что он / она нажали за пределами вашего всплывающего окна.
Обратите внимание, что position: fixed
не работает в старых браузерах. Один из обходных путей заключается в том, что, когда наложение видно, вместо этого установите наложение на position: absolute
, а затем временно добавьте overflow: hidden
к <body>
, чтобы пользователь не мог прокрутить вниз.