11
22document . addEventListener ( "DOMContentLoaded" , function ( e ) {
33
4+ // Hamburger menu toggle
5+ var hamburger = document . querySelector ( '.hamburger' ) ;
6+ var nav = document . getElementById ( 'site-navigation' ) ;
7+
8+ if ( hamburger ) {
9+ hamburger . addEventListener ( 'click' , function ( ) {
10+ nav . classList . toggle ( 'menu-open' ) ;
11+ } ) ;
12+ }
13+
14+ // Detect if sidebar is missing or empty and add centering class
15+ var sidebarLeft = document . querySelector ( '.page-standard .page-container .sidebar-left' ) ;
16+ var pageContainer = document . querySelector ( '.page-standard .page-container' ) ;
17+
18+ if ( pageContainer ) {
19+ if ( ! sidebarLeft || ! sidebarLeft . querySelector ( '.sidebar' ) || ! sidebarLeft . querySelector ( '.sidebar' ) . hasChildNodes ( ) ) {
20+ pageContainer . classList . add ( 'no-sidebar' ) ;
21+ }
22+ }
23+
424 var iframes = document . querySelectorAll ( '.page-standard .page-container .content-right iframe' ) ;
525 layoutIframes ( iframes ) ;
626
@@ -20,7 +40,7 @@ document.addEventListener("DOMContentLoaded", function(e) {
2040 layoutIframes ( ) ;
2141 }
2242
23- document . addEventListener ( "resize" , function ( e ) {
43+ window . addEventListener ( "resize" , function ( e ) {
2444 layout ( ) ;
2545 } ) ;
2646
@@ -51,6 +71,20 @@ document.addEventListener("DOMContentLoaded", function(e) {
5171 }
5272 }
5373
74+ // Clone sidebar into hamburger menu for mobile
75+ var sidebar = document . querySelector ( '.page-standard .page-container .sidebar-left .sidebar' ) ;
76+
77+ if ( sidebar && nav ) {
78+ var sidebarMobile = document . createElement ( 'div' ) ;
79+ sidebarMobile . className = 'sidebar-mobile' ;
80+ sidebarMobile . innerHTML = sidebar . innerHTML ;
81+ nav . appendChild ( sidebarMobile ) ;
82+
83+ // Bind menu toggle to mobile sidebar menu titles
84+ var mobileMenus = sidebarMobile . querySelectorAll ( 'li.menu-title' ) ;
85+ bindMenus ( mobileMenus ) ;
86+ }
87+
5488 var didLike = false ;
5589 bindLikeCounter ( ) ;
5690
0 commit comments