PageSourceSearch

https://gravi.org/assets/js/rsmenu-main.js

js gravi.org collected 2026-09-29 16:54:00 UTC 4,415 bytes, 121 lines download raw bytes

1$(document).ready(function () {
2	// Strict Mode
3	"use strict";
4
5	//Defines variables	
6	var arrow_up = '<i class="fa fa-angle-up" aria-hidden="true"></i>';
7	var arrow_down = '<i class="fa fa-angle-down" aria-hidden="true"></i>';
8	var arrow_span = '<span class="rs-menu-parent">' + arrow_down + '</span>';
9	var close_button = '<div class="sub-menu-close"><i class="fa fa-times" aria-hidden="true"></i>Закрыть</div>';
10	
11	//Insert all arrow down span element
12	$('.nav-menu .rs-mega-menu').append(arrow_span);
13	$('.nav-menu > .menu-item-has-children').append(arrow_span);
14	$('.nav-menu > .menu-item-has-children .sub-menu > .menu-item-has-children').append(arrow_span);
15	
16	//Insert all close button element
17	$('.nav-menu .menu-item-has-children .sub-menu').append(close_button);
18	$('.nav-menu .rs-mega-menu .mega-menu').append(close_button);
19
20	/*-----------------------------------------------------------------------------------*/
21	/*	OPEN SUB MENU FUNCTION
22	/*-----------------------------------------------------------------------------------*/
23	$('span.rs-menu-parent').on('click', function(e){
24		e.preventDefault();
25		
26		var t = $(this);
27		var menu = t.siblings('ul');	
28		var parent = t.parent('li');
29		var siblings = parent.siblings('li');
30		var arrow_target = 'span.rs-menu-parent';
31		
32		if (menu.hasClass('sub-menu')) { 
33			var menu = t.siblings('ul.sub-menu'); 
34		} else if(menu.hasClass('mega-menu')) {
35			var menu = t.siblings('ul.mega-menu');
36		}
37		
38		if (menu.hasClass('visible')) {
39			setTimeout(function() { menu.removeClass('visible'); }, 10);	
40			t.html(arrow_down);		
41		} else {
42			setTimeout(function() { menu.addClass('visible'); }, 10);
43			t.html(arrow_up);
44		}
45			
46		/*-------------------------------------*/
47		/*	CLOSE MENUS
48		/*-------------------------------------*/
49			
50		//Close sub menus
51		parent.find('ul.visible').removeClass('visible');	
52		
53		//Close sub menus parents
54		parent.siblings('li').children('ul').removeClass('visible');	
55		
56		//Close sub menus child parents 
57		siblings.find('ul.visible').removeClass('visible');	
58		
59		/*-------------------------------------*/
60		/*	INSERT ARROW DOWN
61		/*-------------------------------------*/	
62		
63		//Insert arrow down in sub menus
64		parent.children('ul').find(arrow_target).html(arrow_down);
65		
66		//Insert arrow down in sub menus parents
67		siblings.children(arrow_target).html(arrow_down);
68		
69		//Insert arrow down in sub menus child parents 
70		siblings.find(arrow_target).html(arrow_down);
71	}); 
72	
73	/*-----------------------------------------------------------------------------------*/
74	/*	CLOSE BUTTON
75	/*-----------------------------------------------------------------------------------*/ 
76	$('ul.nav-menu div.sub-menu-close').on('click', function(e){
77	   e.preventDefault();
78		  
79	   var a = $(this).parent('ul');      
80	   a.removeClass('visible');
81	   a.siblings('span.rs-menu-parent').html(arrow_down);
82	}); 
83	
84	/*-----------------------------------------------------------------------------------*/
85	/*	EFFECTS ON MENU TOGGLE
86	/*-----------------------------------------------------------------------------------*/ 
87	$('a.rs-menu-toggle').on('click', function(e){
88		e.preventDefault();	
89		var menu_height = $('.rs-menu ul').height();
90		
91		if ($(this).hasClass('rs-menu-toggle-open')) {		
92			$(this).removeClass('rs-menu-toggle-open').addClass('rs-menu-toggle-close');
93			$('.rs-menu').animate({height:'0px'},{queue:false, duration:300}).addClass('rs-menu-close');	
94		} else {			
95			$(this).removeClass('rs-menu-toggle-close').addClass('rs-menu-toggle-open');
96			$('.rs-menu').animate({height:menu_height},{queue:false, duration:300}).removeClass('rs-menu-close');
97		}
98	});	
99	
100	/*-----------------------------------------------------------------------------------*/
101	/*	CLOSE MENUS ON RESIZE
102	/*-----------------------------------------------------------------------------------*/ 
103	var window_width = 0;
104	 
105	$(window).on('load', function () {	
106		window_width = $(window).width();
107		$('.rs-menu').addClass( "rs-menu-close" );
108	});
109	
110	$(window).resize( function(){    
111		if(window_width !== $(window).width()){		
112			$('.visible').removeClass('visible');	
113			$('.rs-menu-toggle').removeClass('rs-menu-toggle-open').addClass( "rs-menu-toggle-close" );	
114			$('.rs-menu').css( "height", "0" ).addClass( "rs-menu-close" );		
115		
116			$('span.rs-menu-parent').html( arrow_down );		
117			window_width = $(window).width();	
118		}
119	});	
120	
121});

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.