small-menu.js 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. /**
  2. * Handles toggling the main navigation menu for small screens.
  3. */
  4. jQuery( document ).ready( function( $ ) {
  5. var $masthead = $( '#masthead' ),
  6. timeout = false;
  7. $.fn.smallMenu = function() {
  8. $masthead.find( '.site-navigation' ).removeClass( 'main-navigation' ).addClass( 'main-small-navigation' );
  9. $masthead.find( '.site-navigation h1' ).removeClass( 'assistive-text' ).addClass( 'menu-toggle' );
  10. $( '.menu-toggle' ).click( function() {
  11. $masthead.find( '.menu' ).toggle();
  12. $( this ).toggleClass( 'toggled-on' );
  13. } );
  14. };
  15. // Check viewport width on first load.
  16. if ( $( window ).width() < 600 )
  17. $.fn.smallMenu();
  18. // Check viewport width when user resizes the browser window.
  19. $( window ).resize( function() {
  20. var browserWidth = $( window ).width();
  21. if ( false !== timeout )
  22. clearTimeout( timeout );
  23. timeout = setTimeout( function() {
  24. if ( browserWidth < 600 ) {
  25. $.fn.smallMenu();
  26. } else {
  27. $masthead.find( '.site-navigation' ).removeClass( 'main-small-navigation' ).addClass( 'main-navigation' );
  28. $masthead.find( '.site-navigation h1' ).removeClass( 'menu-toggle' ).addClass( 'assistive-text' );
  29. $masthead.find( '.menu' ).removeAttr( 'style' );
  30. }
  31. }, 200 );
  32. } );
  33. } );