PageSourceSearch

https://abstractlogix.com/wp-content/themes/soundrise/classic-menu/js/classic.js?ver=7.0.6

js abstractlogix.com collected 2026-10-02 12:10:17 UTC 9,334 bytes, 251 lines download raw bytes

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