PageSourceSearch

https://lunaticsoul.com/wp-content/themes/lunaticsoul/classic-menu/js/classic.js?ver=7.1.2

js lunaticsoul.com collected 2026-10-02 08:04:23 UTC 9,489 bytes, 297 lines download raw bytes

1$ = jQuery;
2$wrap = $('.classic-menu');
3$menu = $wrap.find('>ul');
4
5var menu_height = $menu.outerHeight(true);
6$wrap.height(menu_height);
7
8
9var calculateTopPadding = function( callFrom ) {
10	var callFrom = typeof callFrom !== 'undefined' ? callFrom : 'default';
11	var wrapper = $('.wrapper');
12	switch ( callFrom ) {
13		case 'pjax':
14
15			if(!IRON.state.responsive) {
16
17				if(IRON.state.menu.classic_menu_over_content == '0' ) {
18					wrapper.eq(1).css('padding-top', $wrap.outerHeight(true) + 'px');
19				}
20
21				if(IRON.state.menu.classic_menu_position == 'absolute absolute_before' && IRON.state.menu.classic_menu_over_content != '1') {
22					wrapper.eq(1).css('padding-top', $wrap.outerHeight(true) + 'px');
23				}
24
25			}else{
26				wrapper.eq(1).css('padding-top', '');
27			}
28
29			break;
30
31		default:
32			if(!IRON.state.responsive) {
33
34				if(IRON.state.menu.classic_menu_over_content == '0' ) {
35					$('#wrapper').css('padding-top', $wrap.outerHeight(true) + 'px');
36				}
37
38				if(IRON.state.menu.classic_menu_position == 'absolute absolute_before' && IRON.state.menu.classic_menu_over_content != '1') {
39					$('#wrapper').css('padding-top', $wrap.outerHeight(true) + 'px');
40				}
41
42			}else{
43				$('#wrapper').css('padding-top', '');
44			}
45	}
46
47
48
49}
50
51// add class ready when classic menu is ready.
52$(window).on('load',function () { $('.classic-menu').addClass('ready'); });
53// activate responsiveness to classic menu.
54
55if($('html').hasClass('no-touchevents')) {
56	$(window).on('load', responsiveMenu);
57	$(window).on('resize', responsiveMenu);
58}else{
59	$(window).on('resize', responsiveMenu);
60	$(window).on('load', responsiveMenu);
61}
62
63// function that activate responsiveness
64function responsiveMenu() {
65		IRON.state.responsive = false;
66	if( $(window).width() < 1144 ) {
67		IRON.state.responsive = true;
68		$('.classic-menu').addClass('responsive').removeClass('mini');
69		/*if(logo_mini_url != '') {
70			$('.classic-menu').find('.classic-menu-logo').attr('src', logo_url);
71		}*/
72		if(IRON.state.logo.use_alternative_logo_on_mobile) {
73			$('.classic-menu').find('.classic-menu-logo').attr('src', IRON.state.logo.logo_page_url);
74		}else{
75			$('.classic-menu').find('.classic-menu-logo').attr('src', $wrap.data('logo'));
76		}
77
78
79		if( $('.responsive-header').length < 1  ) {
80			$('<div class="responsive-header"><a class="sandwich-icon"></a></div>').prependTo('.classic-menu');
81			if (jQuery('.languages-selector').children().length == 0){
82                $( '.languages-selector' ).remove();
83            }
84		}
85		$('.responsive-header').off().on('click', '.sandwich-icon', function(e) {
86			// e.preventDefault();
87
88			// debugger
89			if( $('.classic-menu').is('.visible') ) { $('.sandwich-icon').removeClass('opened'); $('.classic-menu').removeClass('visible'); return false; }
90			else { $('.sandwich-icon').addClass('opened'); $('.classic-menu').addClass('visible');  }
91		});
92
93		$('.classic-menu ul li a').off().on('click', function(e) {
94
95			// toggle in all case active class
96			var anchor = $(this)
97			var anchorParents = anchor.parents('li')
98
99			$(this).parents('#menu-main-menu').find('li').each(function(el){
100				if ( !_.contains( anchorParents, this ) ) {
101					$(this).removeClass('active')
102				}
103			})
104			$(this).closest('li').not('.logo').toggleClass('active');
105
106			if( $(this).attr('href') == '#' ) {
107				e.preventDefault();
108			}else{
109				// window.location.href = $(this).attr('href');
110				$('.classic-menu').removeClass('visible');
111				$('.classic-menu .sandwich-icon').removeClass('opened');
112				$('.classic-menu').scrollTop(0);
113			}
114
115		});
116
117	} else {
118		$('.classic-menu').removeClass('responsive');
119		if($('.classic-menu').hasClass('mini') ){
120			if(IRON.state.logo.logo_mini_url != '') {
121				$('.classic-menu').find('.classic-menu-logo').attr('src', IRON.state.logo.logo_mini_url);
122			}
123
124		}else{
125			$('.classic-menu').find('.classic-menu-logo').attr('src', IRON.state.logo.logo_url);
126		}
127
128		$('.classic-menu .hotlink').attr('style', '');
129		$('.classic-menu .responsive-header').remove();
130	}
131
132	setTimeout(function() {
133		calculateTopPadding();
134	},450);
135}
136
137
138
139function fixLogoMargin() {
140
141	if($('.classic-menu > ul > li.logo').hasClass('pull-center') || $('.classic-menu > ul > li.logo').hasClass('pull-top'))
142		return false;
143
144	var itemHeight = $('.classic-menu > ul > li').not('.logo').first().outerHeight(true);
145	var logoHeight = $('.classic-menu > ul > li.logo a').height();
146	var marginTop = (itemHeight / 2) - (logoHeight / 2);
147	$('.classic-menu > ul > li.logo a').css('margin', marginTop+'px 0 0');
148}
149
150
151
152
153IRON.setupMenu = function() {
154	var total_items = $menu.find('>
154li:not(".hotlink")').length;
155
156	var position = 0;
157	if ( IRON.state.logo.logo_align == 'pull-right' ) {
158		position = total_items
159	}
160	if ( IRON.state.logo.logo_align == 'pull-center' ) {
161		position = Math.ceil(total_items / 2);
162	}
163
164
165	// Activate Mini menu.
166	var lastScrollTop = 0;
167
168	if(IRON.state.logo.logo_page_url ==''){
169		IRON.state.logo.logo_page_url = IRON.state.logo.logo_url;
170		if(IRON.state.logo.logo_page_retina_url ==''){
171			IRON.state.logo.logo_page_retina_url = IRON.state.logo.retina_logo_url;
172		}
173	}
174	if(IRON.state.logo.logo_page_retina_url ==''){
175		IRON.state.logo.logo_page_retina_url = IRON.state.logo.logo_page_url;
176	}
177	if(IRON.state.logo.retina_logo_url ==''){
178		IRON.state.logo.retina_logo_url = IRON.state.logo.logo_url;
179	}
180
181		$(document).on('scroll touchmove', function (e) {
182		   	var offset = $(this).scrollTop();
183		   	var st = $(this).scrollTop();
184
185	       	if( ( $('.classic-menu').hasClass('mini-active') || $('.classic-menu').hasClass('mini-fullwidth-active') ) && !$('.classic-menu').hasClass('responsive')) {
186				   
187		   		if (offset > 150) {
188					if( !$('.classic-menu').hasClass('mini') ){
189						$('.classic-menu').css( 'width', '100%' ).addClass('mini');
190					}
191			    	if(IRON.state.logo.logo_mini_url != '') {
192				    	$('.classic-menu').find('.classic-menu-logo').attr('src', IRON.state.logo.logo_mini_url);
193				    	$('.classic-menu').find('.classic-menu-logo').attr('srcset', IRON.state.logo.logo_mini_url + ' 1x, ' + IRON.state.logo.logo_mini_url + ' 2x');
194			    	}
195
196			    }
197			    if (offset <= 150) {
198					if( $('.classic-menu').hasClass('mini') ){
199						$('.classic-menu').css( 'width', $('body').width() - 2*parseInt(iron_vars.menu.classic_menu_hmargin) ).removeClass('mini') ;	
200					}
201			    	if(IRON.state.logo.logo_mini_url != '') {
202						$('.classic-menu').find('.classic-menu-logo').attr('src', IRON.state.logo.logo_url);
203						$('.classic-menu').find('.classic-menu-logo').attr('srcset', IRON.state.logo.logo_url + ' 1x, ' + IRON.state.logo.retina_logo_url + ' 2x');
204			    	}
205			    }
206
207		    	fixLogoMargin();
208
209			}
210			lastScrollTop = st;
211
212			$('.classic-menu').css('height', '');
213
214		});
215
216		setTimeout(function() {
217			fixLogoMargin();
218		},450);
219
220
221
222
223
224	calculateTopPadding();
225
226	if(IRON.state.logo.use_alternative_logo && !IRON.state.responsive) {
227	//if(logo_page_url != '' && !$('.classic-menu').hasClass('responsive')) {
228		IRON.state.logo.logo_url = IRON.state.logo.logo_page_url;
229
230		if(IRON.state.logo.logo_page_retina_url !=''){
231			IRON.state.logo.retina_logo_url = IRON.state.logo.logo_page_retina_url;
232		}
233	}
234
235	if(IRON.state.logo.use_alternative_logo_on_mobile && IRON.state.responsive) {
236	//if(logo_page_url != '' && !$('.classic-menu').hasClass('responsive')) {
237		IRON.state.logo.logo_url = IRON.state.logo.logo_page_url;
238
239		if(IRON.state.logo.logo_page_retina_url !=''){
240			IRON.state.logo.retina_logo_url = IRON.state.logo.logo_page_retina_url;
241		}
242	}
243
244	if(IRON.state.logo.logo_url) {
245
246		IRON.state.logo.logo_url = IRON.state.logo.logo_url.slice( IRON.state.logo.logo_url.indexOf('/') )
247		IRON.state.logo.retina_logo_url = IRON.state.logo.retina_logo_url.slice( IRON.state.logo.retina_logo_url.indexOf('/') )
248
249		var $logo = $('<li class="logo '+IRON.state.logo.logo_align+'"><a href="'+IRON.state.site_url+'"><img class="classic-menu-logo" src="'+IRON.state.logo.logo_url+'" srcset="'+IRON.state.logo.logo_url+' 1x, '+IRON.state.logo.retina_logo_url+' 2x" alt="' + IRON.state.site_name + '"></a></li>');
250
251	}else{
252		var $logo = $('<li class="logo '+IRON.state.logo.logo_align+'"><a href="'+IRON.state.site_url+'">'+IRON.state.site_name+'</a></li>');
253	}
254
255	if (!$menu.find('.logo').length) {
256		$menu.find('>li').eq(position).before($logo);
257	}else{
258		$menu.find('.logo img').attr({
259			src : IRON.state.logo.logo_url,
260			srcset : IRON.state.logo.logo_url+' 1x, '+IRON.state.logo.retina_logo_url+' 2x'
261		})
262	}
263
264	// Collision: avoid submenu to be out of viewport.
265	$menu.find('>li a').on('mouseover', function(e) {
266		// check if has submenu
267		if( $(this).find(' + ul').length > 0 ) {
268			// var zI = 1;
269			var $_this = $(this).find(' + ul');
270			if( $_this.outerWidth(true) + $_this.offset().left > $(window).width() ) {
271				// $_this.css('zIndex', zI++);
272				$(this).parent().addClass('collision');
273			}
274		}
275
276	});
277
278	// hotlinks
279	$hotlinks = $wrap.find('.classic-menu-hot-links');
280	if($hotlinks.length > 0) {
281		var links = $hotlinks.html();
282		$hotlinks.detach();
283		$menu.append(links);
284	}
285
286	if($('.logo.pull-left')){
287		var totalwidth = 0;
288		$(".hotlink.pull-right").each(function(){
289			totalwidth = totalwidth + $(this).outerWidth(true);
290		});
291	}
292
293
294
295};
296
297$(window).on('load', IRON.setupMenu );

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.