|
2 | 2 | 'use strict' |
3 | 3 |
|
4 | 4 | var nav = document.querySelector('nav.nav') |
| 5 | + var menuExpandToggle = document.querySelector('.menu-expand-toggle') |
5 | 6 | var navMenu = {} |
6 | 7 | if (!(navMenu.element = nav && nav.querySelector('.nav-menu'))) return |
7 | 8 | var navControl |
|
29 | 30 | } |
30 | 31 | }) |
31 | 32 |
|
32 | | - fitNavMenuInit({}) |
33 | | - window.addEventListener('load', fitNavMenuInit) |
34 | | - window.addEventListener('resize', fitNavMenuInit) |
| 33 | + // fitNavMenuInit({}) |
| 34 | + // window.addEventListener('load', fitNavMenuInit) |
| 35 | + // window.addEventListener('resize', fitNavMenuInit) |
35 | 36 |
|
36 | 37 | if ((navControl = document.querySelector('main .nav-control'))) navControl.addEventListener('click', revealNav) |
37 | 38 |
|
38 | | - function scrollItemToMiddle (el, parentEl) { |
39 | | - var adjustment = (el.getBoundingClientRect().height - parentEl.getBoundingClientRect().height) * 0.5 + el.offsetTop |
40 | | - if (adjustment > 0) parentEl.scrollTop = adjustment |
41 | | - } |
42 | | - |
43 | | - function fitNavMenuInit (e) { |
44 | | - window.removeEventListener('scroll', fitNavMenuOnScroll) |
45 | | - navMenu.element.style.height = '' |
46 | | - if ((navMenu.preferredHeight = navMenu.element.getBoundingClientRect().height) > 0) { |
47 | | - // QUESTION should we check if x value > 0 instead? |
48 | | - if (window.getComputedStyle(nav).visibility === 'visible') { |
49 | | - if (!navMenu.encroachingElement) navMenu.encroachingElement = document.querySelector('footer.footer') |
50 | | - fitNavMenu(navMenu.preferredHeight, (navMenu.viewHeight = window.innerHeight), navMenu.encroachingElement) |
51 | | - window.addEventListener('scroll', fitNavMenuOnScroll) |
52 | | - } |
53 | | - if (currentPageItem && e.type !== 'resize') { |
54 | | - scrollItemToMiddle(currentPageItem.querySelector('.nav-link'), navMenu.element) |
55 | | - } |
56 | | - } |
57 | | - } |
58 | | - |
59 | | - function fitNavMenuOnScroll () { |
60 | | - fitNavMenu(navMenu.preferredHeight, navMenu.viewHeight, navMenu.encroachingElement) |
61 | | - } |
62 | | - |
63 | | - function fitNavMenu (preferredHeight, availableHeight, encroachingElement) { |
64 | | - var reclaimedHeight = availableHeight - encroachingElement.getBoundingClientRect().top |
65 | | - navMenu.element.style.height = reclaimedHeight > 0 ? Math.max(0, preferredHeight - reclaimedHeight) + 'px' : '' |
66 | | - } |
| 39 | + // function scrollItemToMiddle (el, parentEl) { |
| 40 | + // var adjustment = (el.getBoundingClientRect().height - parentEl.getBoundingClientRect().height) * 0.5 + el.offsetTop |
| 41 | + // if (adjustment > 0) parentEl.scrollTop = adjustment |
| 42 | + // } |
| 43 | + |
| 44 | + // function fitNavMenuInit (e) { |
| 45 | + // window.removeEventListener('scroll', fitNavMenuOnScroll) |
| 46 | + // navMenu.element.style.height = '' |
| 47 | + // if ((navMenu.preferredHeight = navMenu.element.getBoundingClientRect().height) > 0) { |
| 48 | + // // QUESTION should we check if x value > 0 instead? |
| 49 | + // if (window.getComputedStyle(nav).visibility === 'visible') { |
| 50 | + // if (!navMenu.encroachingElement) navMenu.encroachingElement = document.querySelector('footer.footer') |
| 51 | + // fitNavMenu(navMenu.preferredHeight, (navMenu.viewHeight = window.innerHeight), navMenu.encroachingElement) |
| 52 | + // window.addEventListener('scroll', fitNavMenuOnScroll) |
| 53 | + // } |
| 54 | + // if (currentPageItem && e.type !== 'resize') { |
| 55 | + // scrollItemToMiddle(currentPageItem.querySelector('.nav-link'), navMenu.element) |
| 56 | + // } |
| 57 | + // } |
| 58 | + // } |
| 59 | + |
| 60 | + // function fitNavMenuOnScroll () { |
| 61 | + // fitNavMenu(navMenu.preferredHeight, navMenu.viewHeight, navMenu.encroachingElement) |
| 62 | + // } |
| 63 | + |
| 64 | + // function fitNavMenu (preferredHeight, availableHeight, encroachingElement) { |
| 65 | + // var reclaimedHeight = availableHeight - encroachingElement.getBoundingClientRect().top |
| 66 | + // navMenu.element.style.height = reclaimedHeight > 0 ? Math.max(0, preferredHeight - reclaimedHeight) + 'px' : '' |
| 67 | + // } |
67 | 68 |
|
68 | 69 | var navMenuControl |
69 | 70 | if (document.querySelector('.main-nav-parent')) { |
|
137 | 138 | } else { |
138 | 139 | nav.classList.add('show-nav') |
139 | 140 | } |
140 | | - }, 2000) |
| 141 | + |
| 142 | + menuExpandToggle.addEventListener('click', function(e) { |
| 143 | + e.preventDefault() |
| 144 | + // var navBarHeight = nav.querySelector('.nav-menu') |
| 145 | + // navBarHeight.style.height = '100vh' |
| 146 | + // console.log(navBarHeight.style.height) |
| 147 | + if (nav.classList.contains('collapse-menu')) { |
| 148 | + nav.classList.remove('collapse-menu') |
| 149 | + } else { |
| 150 | + nav.classList.add('collapse-menu') |
| 151 | + } |
| 152 | + |
| 153 | + }) |
| 154 | + }, 500) |
141 | 155 | // has children in li |
142 | 156 | // $('ul.nav-list li.nav-item ul.nav-list .nav-item').has('ul.nav-list').addClass('has-children') |
143 | 157 | function concealEvent (e) { |
|
0 commit comments