_header_js_custom.html 3.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. <script language="javascript">
  2. $(document).ready(function () {
  3. bx_activate_anim_icons('#283c50');
  4. /*--- Sandwich Menu: BEG ---*/
  5. var sidebarTrigger = $('.cd-nav-trigger');
  6. //mobile only - open sidebar when user clicks the hamburger menu
  7. sidebarTrigger.on('click', function(event) {
  8. event.preventDefault();
  9. $(sidebarTrigger).toggleClass('nav-is-visible');
  10. });
  11. /*--- Sandwich Menu: AND ---*/
  12. /*--- Dropdown Menu: BEG ---*/
  13. //open/close mega-navigation
  14. $('.cd-dropdown-trigger').on('click', function(event){
  15. event.preventDefault();
  16. toggleNav();
  17. });
  18. //close meganavigation
  19. $('.cd-dropdown .cd-close').on('click', function(event){
  20. event.preventDefault();
  21. toggleNav();
  22. $(sidebarTrigger).toggleClass('nav-is-visible');
  23. });
  24. //on mobile - open submenu
  25. $('.has-children').children('a').on('click', function(event){
  26. //prevent default clicking on direct children of .has-children
  27. event.preventDefault();
  28. var selected = $(this);
  29. selected.next('ul').removeClass('is-hidden').end().parent('.has-children').parent('ul').addClass('move-out');
  30. });
  31. //on desktop - differentiate between a user trying to hover over a dropdown item vs trying to navigate into a submenu's contents
  32. var submenuDirection = ( !$('.cd-dropdown-wrapper').hasClass('open-to-left') ) ? 'right' : 'left';
  33. $('.cd-dropdown-content').menuAim({
  34. activate: function(row) {
  35. $(row).children().addClass('is-active').removeClass('fade-out');
  36. if( $('.cd-dropdown-content .fade-in').length == 0 ) $(row).children('ul').addClass('fade-in');
  37. },
  38. deactivate: function(row) {
  39. $(row).children().removeClass('is-active');
  40. if( $('li.has-children:hover').length == 0 || $('li.has-children:hover').is($(row)) ) {
  41. $('.cd-dropdown-content').find('.fade-in').removeClass('fade-in');
  42. $(row).children('ul').addClass('fade-out')
  43. }
  44. },
  45. exitMenu: function() {
  46. $('.cd-dropdown-content').find('.is-active').removeClass('is-active');
  47. return true;
  48. },
  49. submenuDirection: submenuDirection,
  50. });
  51. //submenu items - go back link
  52. $('.go-back').on('click', function(){
  53. var selected = $(this),
  54. visibleNav = $(this).parent('ul').parent('.has-children').parent('ul');
  55. selected.parent('ul').addClass('is-hidden').parent('.has-children').parent('ul').removeClass('move-out');
  56. });
  57. function toggleNav(){
  58. var navIsVisible = ( !$('.cd-dropdown').hasClass('dropdown-is-active') ) ? true : false;
  59. $('.cd-dropdown').toggleClass('dropdown-is-active', navIsVisible);
  60. $('.cd-dropdown-trigger').toggleClass('dropdown-is-active', navIsVisible);
  61. if( !navIsVisible ) {
  62. $('.cd-dropdown').one('webkitTransitionEnd otransitionend oTransitionEnd msTransitionEnd transitionend',function(){
  63. $('.has-children ul').addClass('is-hidden');
  64. $('.move-out').removeClass('move-out');
  65. $('.is-active').removeClass('is-active');
  66. });
  67. }
  68. }
  69. /*--- Dropdown Menu: END ---*/
  70. });
  71. </script>