_menu_mobile.js 3.48 KB

var addstuff = '<div class="list-wrapper2 list-wrapper"><button type="button" class="back-one-level"><span>Back</span></button><div class="sub-menu-wrapper"></div></div><div class="list-wrapper3 list-wrapper"><button type="button" class="back-one-level"><span>Back</span></button><div class="sub-menu-wrapper"></div></div>';

const pageHeader = document.querySelector("#main-nav");
const toggleMenu = pageHeader.querySelector(".mega-toggle-block");
const closeMenu = pageHeader.querySelector(".mega-menu-toggle.mega-menu-open");
const menuWrapper = pageHeader.querySelector("#mega-menu-primary"); 
menuWrapper.innerHTML =menuWrapper.innerHTML + addstuff; 

const level1Links = pageHeader.querySelectorAll("li.mega-menu-item-has-children > a.mega-menu-link");
const listWrapper2 = pageHeader.querySelector(".list-wrapper2");
const listWrapper3 = pageHeader.querySelector(".list-wrapper3");
const subMenuWrapper2 = listWrapper2.querySelector(".sub-menu-wrapper");
const subMenuWrapper3 = listWrapper3.querySelector(".sub-menu-wrapper");
const backOneLevelBtns = pageHeader.querySelectorAll(".back-one-level");
const isVisibleClass = "is-visible";
const isActiveClass = "is-active";
const isBtVisible = "is-bt-active";






for (const level1Link of level1Links) {
  level1Link.addEventListener("click", function (e) {
    const siblingList = level1Link.nextElementSibling;
    console.log('clicked level1Links')
    if (siblingList) {
      e.preventDefault();
      this.classList.add(isActiveClass);
      const cloneSiblingList = siblingList.cloneNode(true);
      subMenuWrapper2.innerHTML = "";
      subMenuWrapper2.append(cloneSiblingList);
      listWrapper2.classList.add(isVisibleClass);
      setTimeout(() => {
        backOneLevelBtns[0].classList.add(isBtVisible);
      }, 1000);
    }
  });
}

listWrapper2.addEventListener("click", function (e) {
  const target = e.target;
  const parent = target.closest("a");
  if (target.tagName.toLowerCase() === "a" && target.nextElementSibling) {
    const siblingList = target.nextElementSibling;
    e.preventDefault();
    target.classList.add(isActiveClass);
    const cloneSiblingList = siblingList.cloneNode(true);
    subMenuWrapper3.innerHTML = "";
    subMenuWrapper3.append(cloneSiblingList);
    listWrapper3.classList.add(isVisibleClass);
    setTimeout(() => {
      backOneLevelBtns[1].classList.add(isBtVisible);
    }, 1000);
  }else if (parent.tagName.toLowerCase() === "a" && parent.nextElementSibling) {
      const siblingList = parent.nextElementSibling;
      e.preventDefault();
      parent.classList.add(isActiveClass);
      const cloneSiblingList = siblingList.cloneNode(true);
      subMenuWrapper3.innerHTML = "";
      subMenuWrapper3.append(cloneSiblingList);
      listWrapper3.classList.add(isVisibleClass);
      setTimeout(() => {
        backOneLevelBtns[1].classList.add(isBtVisible);
      }, 1000);
    }
});

for (const backOneLevelBtn of backOneLevelBtns) {
  backOneLevelBtn.addEventListener("click", function () {
    console.log(this);
    this.style.display = "";
    const parent = this.closest(".list-wrapper");
    parent.classList.remove(isVisibleClass);
    this.classList.remove(isBtVisible);
    setTimeout(() => {
      parent.scrollTo({ top: 0, behavior: 'smooth' } ); 
    }, 500);

  });
  toggleMenu.addEventListener("click", function () {
    setTimeout(() => {
      console.log('clicked toggleMenu')
      listWrapper2.scrollTo({ top: 0, behavior: 'smooth' } ); 
      listWrapper3.scrollTo({ top: 0, behavior: 'smooth' } ); 
    }, 500);

  });
}