简体   繁体   中英

Hide navbar when li element is been clicked on

Hey I'm having trouble hiding the navbar when we click on one of the element like contact or something.. I'm using HTML, JS and CSS..

        <div class="theme">
            <img class="darkThemeicon" src="assets/front/img/moon.png" alt="moon dark mode" id="icon">
        </div>
        <a href="#" class="hamburger" id="hamburger">
            <span class="bar"></span>
            <span class="bar"></span>
            <span class="bar"></span>
        </a>
        <nav class="nav">
            <ul class="ul">
                <li class="li"><a class="list-link" href="#home">Home</a></li>
                <li class="li"><a class="list-link" href="#skills">Skills</a></li>
                <li class="li"><a class="list-link" href="#project">Project</a></li>
                <li class="li"><a class="list-link" href="#contact">Contact</a></li>
            </ul>
        </nav>
    </header>```


    ```const hamburger = document.getElementById('hamburger');
    hamburger.addEventListener('click', function (e) {
        const ul = document.querySelector('nav > ul');
        ul.classList.toggle('menu-slide');
        hamburger.classList.toggle('cross');
    });
    
    function hideDiv() {
        document.getElementsByClassName('ul')[0].style.display = "none";
    }```

Your posted code does not include any part that would react to a click on the li elements. I have added the following:

document.querySelectorAll('li').forEach((li) => li.addEventListener('click', hideDiv));

 const hamburger = document.getElementById('hamburger'); hamburger.addEventListener('click', function (e) { const ul = document.querySelector('nav > ul'); ul.classList.toggle('menu-slide'); hamburger.classList.toggle('cross'); }); function hideDiv() { document.getElementsByClassName('ul')[0].style.display = "none"; } document.querySelectorAll('li').forEach((li) => li.addEventListener('click', hideDiv));
 <header> <div class="theme"> <img class="darkThemeicon" src="assets/front/img/moon.png" alt="moon dark mode" id="icon"> </div> <a href="#" class="hamburger" id="hamburger"> <span class="bar"></span> <span class="bar"></span> <span class="bar"></span> </a> <nav class="nav"> <ul class="ul"> <li class="li"><a class="list-link" href="#home">Home</a></li> <li class="li"><a class="list-link" href="#skills">Skills</a></li> <li class="li"><a class="list-link" href="#project">Project</a></li> <li class="li"><a class="list-link" href="#contact">Contact</a></li> </ul> </nav> </header>

You Just Need to call Your function in the HTML Code

 <ul class="ul">
            <li class="li"><a class="list-link" href="#home" onclick="hideDiv()">Home</a></li>
            <li class="li"><a class="list-link" href="#skills" onclick="hideDiv()">Skills</a></li>
            <li class="li"><a class="list-link" href="#project" onclick="hideDiv()">Project</a></li>
            <li class="li"><a class="list-link" href="#contact" onclick="hideDiv()">Contact</a></li>
        </ul>

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM