1const setUniformSubmenuHeightForAcademicPrograms = () => { 2 let maxHeight = 0; 3 4 // Find the "Academic Programs" top-level menu item 5 const academicProgramsMenuItem = Array.from(document.querySelectorAll('.top-level > a')).find(anchor => anchor.textContent.trim() === "Academic Programs"); 6 7 // If "Academic Programs" is found, select its submenus; otherwise, select none 8 const submenus = academicProgramsMenuItem ? academicProgramsMenuItem.closest('.top-level').querySelectorAll('.multilevel-linkul-0, .multilevel-linkul-1, .multilevel-linkul-2') : []; 9 10 // Temporarily make submenus visible for height calculation 11 submenus.forEach(submenu => { 12 submenu.style.cssText = ` 13 height: unset; 14 visibility: hidden; 15 display:block; 16 `;// reset the dynamically generated height 17 18 maxHeight = Math.max(maxHeight, submenu.offsetHeight); 19 }); 20 21 submenus.forEach(submenu => { 22 // Apply the maximum height to "Academic Programs" submenus 23 submenu.style.cssText = ` 24 height: ${maxHeight}px; 25 visibility: unset; 26 display:none; 27 `; 28 29 }); 30}; 31 32document.addEventListener('DOMContentLoaded', function () { 33 // Timeout to ensure dynamic content is loaded 34 setTimeout(() => { 35 setUniformSubmenuHeightForAcademicPrograms(); 36 }, 15); // Adjust timeout as needed 37}); 38 39 40let bottomNavigationResizeTimeoutId = null; 41 42// Recalculate heights on window resize 43window.addEventListener('resize', () => { 44 if (bottomNavigationResizeTimeoutId !== null) { 45 clearTimeout(bottomNavigationResizeTimeoutId); 46 } 47 48 bottomNavigationResizeTimeoutId = setTimeout(() => { 49 setUniformSubmenuHeightForAcademicPrograms() 50 console.log('fires once when resizing stops'); 51 }, 300); 52});
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.