_header_js_custom.html 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. <script type="text/javascript" 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. //IE9 placeholder fallback
  70. //credits http://www.hagenburger.net/BLOG/HTML5-Input-Placeholder-Fix-With-jQuery.html
  71. if(!Modernizr.input.placeholder){
  72. $('[placeholder]').focus(function() {
  73. var input = $(this);
  74. if (input.val() == input.attr('placeholder')) {
  75. input.val('');
  76. }
  77. }).blur(function() {
  78. var input = $(this);
  79. if (input.val() == '' || input.val() == input.attr('placeholder')) {
  80. input.val(input.attr('placeholder'));
  81. }
  82. }).blur();
  83. $('[placeholder]').parents('form').submit(function() {
  84. $(this).find('[placeholder]').each(function() {
  85. var input = $(this);
  86. if (input.val() == input.attr('placeholder')) {
  87. input.val('');
  88. }
  89. })
  90. });
  91. }
  92. /*--- Dropdown Menu: END ---*/
  93. });
  94. </script>