@@ -35,6 +35,33 @@ var main = {
3535 } ) ;
3636 } ) ;
3737
38+ // Ensure nested navbar menus are not longer than the menu header
39+ var menus = $ ( ".navlinks-container" ) ;
40+ if ( menus . length > 0 ) {
41+ var navbar = $ ( "#main-navbar ul" ) ;
42+ var fakeMenuHtml = "<li class='fake-menu' style='display:none;'><a></a></li>" ;
43+ navbar . append ( fakeMenuHtml ) ;
44+ var fakeMenu = $ ( ".fake-menu" ) ;
45+
46+ $ . each ( menus , function ( i ) {
47+ var parent = $ ( menus [ i ] ) . find ( ".navlinks-parent" ) ;
48+ var children = $ ( menus [ i ] ) . find ( ".navlinks-children a" ) ;
49+ var words = [ ] ;
50+ $ . each ( children , function ( idx , el ) { words = words . concat ( $ ( el ) . text ( ) . trim ( ) . split ( / \s + / ) ) ; } ) ;
51+ var maxwidth = 0 ;
52+ $ . each ( words , function ( id , word ) {
53+ fakeMenu . html ( "<a>" + word + "</a>" ) ;
54+ var width = fakeMenu . width ( ) ;
55+ if ( width > maxwidth ) {
56+ maxwidth = width ;
57+ }
58+ } ) ;
59+ $ ( menus [ i ] ) . css ( 'min-width' , maxwidth + 'px' )
60+ } ) ;
61+
62+ fakeMenu . remove ( ) ;
63+ }
64+
3865 // show the big header image
3966 main . initImgs ( ) ;
4067 } ,
@@ -108,4 +135,4 @@ var main = {
108135
109136// 2fc73a3a967e97599c9763d05e564189
110137
111- document . addEventListener ( 'DOMContentLoaded' , main . init ) ;
138+ document . addEventListener ( 'DOMContentLoaded' , main . init ) ;
0 commit comments