HTMLify
script.js
Views: 5 | Author: cody
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | const toggle = document.getElementById('toggle'); const close = document.getElementById('close'); const open = document.getElementById('open'); const modal = document.getElementById('modal'); const navbar = document.getElementById('navbar'); // This function closes navbar if user clicks anywhere outside of navbar once it's opened // Does not leave unused event listeners on // It's messy, but it works function closeNavbar(e) { if ( document.body.classList.contains('show-nav') && e.target !== toggle && !toggle.contains(e.target) && e.target !== navbar && !navbar.contains(e.target) ) { document.body.classList.toggle('show-nav'); document.body.removeEventListener('click', closeNavbar); } else if (!document.body.classList.contains('show-nav')) { document.body.removeEventListener('click', closeNavbar); } } // Toggle nav toggle.addEventListener('click', () => { document.body.classList.toggle('show-nav'); document.body.addEventListener('click', closeNavbar); }); // Show modal open.addEventListener('click', () => modal.classList.add('show-modal')); // Hide modal close.addEventListener('click', () => modal.classList.remove('show-modal')); // Hide modal on outside click window.addEventListener('click', e => e.target == modal ? modal.classList.remove('show-modal') : false ); |