|
9 | 9 | navToggle.addEventListener('click', showNav)
|
10 | 10 | navContainer.addEventListener('click', trapEvent)
|
11 | 11 |
|
12 |
| - var menuPanel = navContainer.querySelector('[data-panel=menu]') |
13 |
| - if (!menuPanel) return |
14 | 12 | var nav = navContainer.querySelector('.nav')
|
| 13 | + var menuPanel = nav.querySelector('[data-panel=menu]') |
15 | 14 | var navBounds = { encroachingElement: document.querySelector('footer.footer') }
|
16 |
| - |
17 | 15 | var currentPageItem
|
| 16 | + |
| 17 | + window.addEventListener('load', fitNavInit) |
| 18 | + window.addEventListener('resize', fitNavInit) |
| 19 | + |
| 20 | + if (!menuPanel) return fitNavInit({}) |
| 21 | + |
18 | 22 | if (menuPanel.classList.contains('is-loading')) {
|
19 | 23 | if ((currentPageItem = findItemForHash() || menuPanel.querySelector('.is-current-url'))) {
|
20 | 24 | activateCurrentPath(currentPageItem)
|
|
33 | 37 | }
|
34 | 38 |
|
35 | 39 | fitNavInit({})
|
36 |
| - window.addEventListener('load', fitNavInit) |
37 |
| - window.addEventListener('resize', fitNavInit) |
38 | 40 |
|
39 | 41 | menuPanel.querySelector('.nav-menu-toggle').addEventListener('click', function () {
|
40 | 42 | var collapse = !this.classList.toggle('is-active')
|
|
176 | 178 | }
|
177 | 179 |
|
178 | 180 | function fitNav () {
|
179 |
| - var scrollDatum = menuPanel.scrollTop + menuPanel.offsetHeight |
| 181 | + var scrollDatum = menuPanel && (menuPanel.scrollTop + menuPanel.offsetHeight) |
180 | 182 | var occupiedHeight = navBounds.availableHeight - navBounds.encroachingElement.getBoundingClientRect().top
|
181 | 183 | nav.style.height = occupiedHeight > 0
|
182 | 184 | ? Math.max(0, Math.round(navBounds.preferredHeight - occupiedHeight)) + 'px'
|
183 | 185 | : ''
|
184 |
| - menuPanel.scrollTop = scrollDatum - menuPanel.offsetHeight |
| 186 | + if (menuPanel) menuPanel.scrollTop = scrollDatum - menuPanel.offsetHeight |
185 | 187 | }
|
186 | 188 | })()
|
0 commit comments