<script>
(function () {
  function recalcMegaHeight() {
    const activeItem = document.querySelector('.mega-menu-item.active');
    const wrapper = document.querySelector('.wm-mega-menu .mega-menu-wrapper');
    const menu = document.querySelector('.wm-mega-menu');
    if (!activeItem || !wrapper || !menu) return;

    const actualHeight = Array.from(activeItem.children).reduce(function (total, el) {
      return total + el.offsetHeight;
    }, 0);

    const borderTop = parseFloat(getComputedStyle(wrapper).borderTopWidth) || 0;
    const borderBottom = parseFloat(getComputedStyle(wrapper).borderBottomWidth) || 0;

    menu.style.setProperty('--active-menu-height', (actualHeight + borderTop + borderBottom) + 'px');
  }

  window.addEventListener('wmMegaMenu:afterOpenMenu', function () {
    setTimeout(recalcMegaHeight, 50);
  });

  window.addEventListener('resize', function () {
    if (document.querySelector('.wm-mega-menu.open')) {
      recalcMegaHeight();
    }
  });
})();
</script>

 

Buy me a coffee