nttdata_theme-1.0.x-dev/js/global.js

js/global.js
/* *
 * @file
 * Global utilities.
 *
 */
(function ($, Drupal) {
  'use strict';
  Drupal.behaviors.nttdata_theme_mobile_menu = {
    attach: function (context, settings) {
  
      // Menu mobile logic.
      $('.menu-toggle').off('click.menumobile').on('click.menumobile', function() {
        $('.header-top .region-header-top-2').slideToggle();
        $('.header-top .region-header-top-2 .nav').addClass('container');
        $(this).toggleClass('menu-close');
        $(this).parents('.header').toggleClass('menu-open');
  
        $('.header-top .menu-item--expanded').each(function() {
          if ($(this).hasClass('show')) {
            $(this).removeClass('show');
            $(this).find('.menu-background-expanded').css('display', 'none');
            $('.header-top .region-header-top-2').removeClass('container');
          }
        });
        if ($('.block-nttdata-theme-useraccountmenu').hasClass('show')) {
          $('.block-nttdata-theme-useraccountmenu').removeClass('show');
          $('.block-nttdata-theme-useraccountmenu .nav').slideUp();
        }
      });
  
      // Menu desktop logic.
      $('.header-top .menu-item--expanded').off('click.expanded').on('click.expanded', function() {
        // Toggle the 'show' class for the clicked element
        $(this).toggleClass('show');
        $(this).find('.menu-background-expanded').slideToggle();
    
        // Remove 'show' class from siblings
        $(this).siblings('.menu-item--expanded.show').each(function() {
            $(this).removeClass('show');
            $(this).find('.menu-background-expanded').slideUp();
        });
        if ($('.block-nttdata-theme-useraccountmenu').hasClass('show')) {
          $('.block-nttdata-theme-useraccountmenu').removeClass('show');
          $('.block-nttdata-theme-useraccountmenu .nav').slideUp();
        }
      });
  
      $('.block-nttdata-theme-useraccountmenu').off('click.expandeduser').on('click.expandeduser', function() {
        // Toggle the 'show' class for the clicked element
        $(this).toggleClass('show');
        $(this).find('.nav').slideToggle();
  
        $('.header-top .menu-item--expanded').siblings('.menu-item--expanded.show').each(function() {
          $(this).removeClass('show');
          $(this).find('.menu-background-expanded').slideUp();
        });
        // Close mobile menu
        if ($('.menu-toggle').hasClass('menu-close')) {
          $('.menu-toggle').removeClass('menu-close');
          $('.menu-toggle').parents('.header').find(".region-header-top-2").slideUp();
        }
    
      });
  
      // Close menus when clicking outside
      $(document).off('click.outsideMenu').on('click.outsideMenu', function(event) {
        // Check if the click is outside the menu
        if (!$(event.target).closest('.header-top, .menu-toggle, .block-nttdata-theme-useraccountmenu').length) {
          // Close mobile menu
          if ($('.menu-toggle').hasClass('menu-close')) {
            $('.menu-toggle').trigger('click.menumobile');
          }
  
          // Close all expanded menu items
          $('.header-top .menu-item--expanded.show').each(function() {
            $(this).removeClass('show');
            $(this).find('.menu-background-expanded').slideUp();
          });
  
          // Close user account menu
          if ($('.block-nttdata-theme-useraccountmenu').hasClass('show')) {
            $('.block-nttdata-theme-useraccountmenu').removeClass('show');
            $('.block-nttdata-theme-useraccountmenu .nav').slideUp();
          }
        }
      });
    },
  };
  
 
  
})(jQuery, Drupal);

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc