Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- (function($)
- {
- "use strict";
- $.avia_utilities = $.avia_utilities || {};
- $( function()
- {
- //activates the sticky submenu
- $.avia_utilities = $.avia_utilities || {};
- if( $.avia_utilities.avia_sticky_submenu )
- {
- $.avia_utilities.avia_sticky_submenu();
- }
- });
- $.avia_utilities.avia_sticky_submenu = function()
- {
- var win = $(window),
- html = $('html').first(),
- header = $('.html_header_top.html_header_sticky #header'),
- html_margin = parseInt( $('html').first().css('margin-top'), 10),
- setWitdth = $('.html_header_sidebar #main, .boxed #main'),
- menus = $('.av-submenu-container'),
- bordermod = html.is('.html_minimal_header') ? 0 : 1,
- fixed_frame = $('.av-frame-top').height(),
- burger_menu = $('.av-burger-menu-main'),
- calc_margin = function()
- {
- html_margin = parseInt( html.css('margin-top'), 10);
- if(!$('.mobile_menu_toggle:visible').length)
- {
- $('.av-open-submenu').removeClass('av-open-submenu');
- }
- menus.filter('.av-sticky-submenu').each(function()
- {
- $(this).next('.sticky_placeholder').height($(this).height());
- });
- },
- calc_values = function()
- {
- var content_width = setWitdth.width();
- html_margin = parseInt( html.css('margin-top'), 10);
- menus.width(content_width);
- },
- check = function(placeholder, no_timeout)
- {
- var menu_pos = this.offset().top,
- top_pos = placeholder.offset().top,
- scrolled = win.scrollTop(),
- modifier = html_margin,
- fixed = false;
- /**
- * If we have burger menu active we ignore sticking submenus
- */
- /***
- if( burger_menu.is(":visible") )
- {
- this.css({top: 'auto', position: 'absolute'}); fixed = false;
- return;
- }
- ****/
- if( burger_menu.is(":visible") && (scrolled + modifier > top_pos) )
- {
- this.css({top: header.Height() , position: 'fixed !important'}); fixed = true;
- }
- if(header.length)
- {
- modifier += header.outerHeight() + parseInt( header.css('margin-top'), 10);
- }
- if(fixed_frame)
- {
- modifier += fixed_frame;
- }
- if(scrolled + modifier > top_pos)
- {
- if(!fixed)
- {
- this.css({top: modifier - bordermod, position: 'fixed'}); fixed = true;
- }
- }
- else
- {
- this.css({top: 'auto', position: 'absolute'}); fixed = false;
- }
- },
- toggle = function(e)
- {
- e.preventDefault();
- var clicked = $(this),
- menu = clicked.siblings('.av-subnav-menu');
- if(menu.hasClass('av-open-submenu'))
- {
- menu.removeClass('av-open-submenu');
- }
- else
- {
- menu.addClass('av-open-submenu');
- }
- };
- win.on("debouncedresize av-height-change", calc_margin ); calc_margin();
- if(setWitdth.length)
- {
- win.on("debouncedresize av-height-change", calc_values );
- calc_values();
- }
- menus.each(function()
- {
- var menu = $(this), sticky = menu.filter('.av-sticky-submenu'), placeholder = menu.next('.sticky_placeholder'), mobile_button = menu.find('.mobile_menu_toggle');
- if(sticky.length) win.on( 'scroll debouncedresize', function(){ window.requestAnimationFrame( $.proxy( check, sticky, placeholder) ); } );
- if(mobile_button.length)
- {
- mobile_button.on( 'click', toggle );
- }
- });
- html.on('click', '.av-submenu-hidden .av-open-submenu li a', function()
- {
- var current = $(this);
- var list_item = current.siblings('ul, .avia_mega_div');
- if(list_item.length)
- {
- if(list_item.hasClass('av-visible-sublist'))
- {
- list_item.removeClass('av-visible-sublist');
- }
- else
- {
- list_item.addClass('av-visible-sublist');
- }
- return false;
- }
- });
- $('.avia_mobile').on('click', '.av-menu-mobile-disabled li a', function()
- {
- var current = $(this);
- var list_item = current.siblings('ul');
- if(list_item.length)
- {
- if(list_item.hasClass('av-visible-mobile-sublist'))
- {
- }
- else
- {
- $('.av-visible-mobile-sublist').removeClass('av-visible-mobile-sublist');
- list_item.addClass('av-visible-mobile-sublist');
- return false;
- }
- }
- });
- };
- }(jQuery));
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement