Performance: Responsive navbar collapse
MEDIUM IMPACT
This affects page load speed and interaction responsiveness by controlling how navigation menus show or hide on different screen sizes.
<nav class="navbar navbar-expand-md"> <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarMenu" aria-controls="navbarMenu" aria-expanded="false" aria-label="Toggle navigation"> <span class="navbar-toggler-icon"></span> </button> <div class="collapse navbar-collapse" id="navbarMenu"> <ul class="navbar-nav"> <li class="nav-item"><a class="nav-link" href="#">Home</a></li> <li class="nav-item"><a class="nav-link" href="#">About</a></li> <li class="nav-item"><a class="nav-link" href="#">Contact</a></li> </ul> </div> </nav>
<nav class="navbar"> <ul> <li>Home</li> <li>About</li> <li>Contact</li> </ul> </nav> <script> const nav = document.querySelector('nav ul'); window.addEventListener('resize', () => { if(window.innerWidth < 768) { nav.style.display = 'none'; } else { nav.style.display = 'block'; } }); </script>
| Pattern | DOM Operations | Reflows | Paint Cost | Verdict |
|---|---|---|---|---|
| Manual style toggle on resize | Minimal DOM nodes | Multiple reflows on every resize event | Multiple paints causing jank | [X] Bad |
| Bootstrap collapse component | Uses existing DOM structure | Single reflow on toggle | Smooth paint with CSS transitions | [OK] Good |