@anmkh

Как закрыть данный попап при клике вне него?

const hamb = document.querySelector("#hamb");
const navbar = document.querySelector("#navbar");
const popup = document.querySelector("#popup");
const menu = document.querySelector("#menu");
const menuCity = document.querySelector(".menu-city");
const headerPhone = document.querySelector(".header__phone").cloneNode(1);
const socialLinks = document.querySelector(".footer__social_links").cloneNode(1);
const btnBrand = document.querySelector(".btn_brand").cloneNode(1);
const body = document.body;


hamb.addEventListener("click", hambHandler);

function hambHandler(e) {
  e.preventDefault();
  popup.classList.toggle("open");
  hamb.classList.toggle("--openmenu")
  navbar.classList.toggle("--openmenu")
  body.classList.toggle("noscroll")

  renderPopup();

}


function renderPopup() {
  const width = window.innerWidth
  if (width < 1269){
    popup.appendChild(menu);
  }
  if (width < 991){
    popup.appendChild(menuCity);
  }

  popup.appendChild(headerPhone);
  popup.appendChild(socialLinks);
  popup.appendChild(btnBrand);

}
  • Вопрос задан
  • 81 просмотр
Пригласить эксперта
Ответы на вопрос 2
IlyaMalone
@IlyaMalone
Frontend Developer
Вариантов несколько и подобные вопросы есть, загуглите при желании.
А так, как делал я:
1. делаешь обертку вокруг попапа, задаешь ему width: 100%, height: 100%, чтобы занимал весь экран.
2. Див должен быть по z-index выше этого попапа.
3. Вешаешь обработчик клика на див-обертку и закрываешь попап.
Ответ написан
vovka3003
@vovka3003
Фрилансер. Инженер систем безопасности.
Можно готовое слямзить, в бутстрапе например:

90lfOMO.png
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы
20 нояб. 2024, в 15:06
8000 руб./за проект
20 нояб. 2024, в 15:02
5000 руб./за проект
20 нояб. 2024, в 14:56
80000 руб./за проект