HEX
Server: Microsoft-IIS/8.5
System: Windows NT YDAWBH120 6.3 build 9600 (Windows Server 2012 R2 Standard Edition) AMD64
User: tentjecom_web (0)
PHP: 7.4.14
Disabled: NONE
Upload Files
File: D:/HostingSpaces/SBogers95/rentman.io/resources/assets/js/site/overlayNavHandler.js
/* ==========================================================================
   Overlay Nav handler
   - Handles the overlay nav component which has the proper classes.
 ========================================================================== */

const overlayNavHandler = {

    init: function () {
        const overlayNavList = document.querySelectorAll('.js-overlay-nav-trigger');
        const overlayNavListCount = overlayNavList.length;

        if(isset(overlayNavList) && overlayNavListCount !== 0){
            for(let i = 0; i < overlayNavListCount; i++){
                const overlayNav = overlayNavList[i];
                overlayNavHandler.initOverlayNav(overlayNav);
            }
        }
    },

    initOverlayNav: function (overlayNavTrigger) {
        overlayNavTrigger.addEventListener('click', overlayNavHandler.toggleOverlayNav, false);
    },

    toggleOverlayNav: function (event) {
        const item = event.target.parentNode;
        const itemList = item.parentNode.children;
        const activeClass = 'is-active';

        // Check if the this one has a overlay nav
        if (!item.querySelector('.js-overlay-nav')) return;

        // Prevent default link behavior
        event.preventDefault();

        // If the item is already active, collapse it and quit
        if (item.classList.contains(activeClass)) {
            item.classList.remove(activeClass);
            return;
        }

        // Loop through all open overlay nav items, and close them
        for (var i = 0; i < itemList.length; i++) {
            itemList[i].classList.remove(activeClass);
        }

        // Toggle our content by setting the active class
        item.classList.toggle(activeClass);
        item.offsetParent.scroll({top: 0});
    }
};

overlayNavHandler.init();