nav-menu.ts 629 B

123456789101112131415161718192021
  1. export function initNavMenu() {
  2. const sections = document.querySelectorAll('nav li.section');
  3. sections.forEach(makeExpandable);
  4. const activeLink = document.querySelector('nav a.active');
  5. if (activeLink) {
  6. activeLink.scrollIntoView({ block: 'center' });
  7. }
  8. }
  9. function makeExpandable(section: Element) {
  10. const icon = section.querySelector('.section-icon');
  11. const sublist = section.querySelector('ul');
  12. if (icon && sublist) {
  13. icon.addEventListener('click', () => {
  14. icon.classList.toggle('expanded');
  15. sublist.classList.toggle('expanded');
  16. });
  17. }
  18. }