function disableFixedMenu() { $("#web-menu-container").prev(".fixed-menu-spacer").hide(); $('#web-menu-container').css({ top: 0 }); } function enableFixedMenu() { $(window).resize(); } $(document).ready(function () { var $web_menu_container = $('#web-menu-container'); var prev_window_width = 0; var resize_timer = null; $(window).resize(function () { var window_width = proweb.getViewportWidth(); if (window_width != prev_window_width) { prev_window_width = window_width; if (resize_timer) window.clearTimeout(resize_timer); resize_timer = window.setTimeout(function () { resize_timer = null; if ($fixed_menu_spacer) { $fixed_menu_spacer.css('height', menu_height); } }, 300); } }); var $web_controller = $('#web-container:first'); var web_controller_offset_top = 0; var menu_height = $web_menu_container.outerHeight(); var $fixed_menu_spacer = null; var fixed_menu_inited = false; var web_menu_offset_top = 0; var $freebar = $('#pwcr-fpb-free-proweb-bar'); var freebar_height = ($freebar.length > 0 ? $freebar.height() : 0); var doFixedMenu = function () { if ($web_menu_container.hasClass('menu-fixed') || $web_menu_container.hasClass('menu-fixed-disabled')) { var scroll_top, viewport_height; //$web_menu_container.removeClass('menu-fixed menu-fixed-disabled'); if (!fixed_menu_inited) { var menu_offset = $web_menu_container.offset(); web_menu_offset_top = menu_offset.top; $fixed_menu_spacer = $('
').prependTo($web_menu_container.parent()).css('height', menu_height); fixed_menu_inited = true; } if ($web_controller.length > 0 && proweb.defined('proweb.content.administration.admin_mode') && proweb.content.administration.admin_mode.getActiveSidMode() == 'md') { scroll_top = $web_controller.scrollTop(); web_controller_offset_top = $web_controller.offset().top; viewport_height = proweb.getViewportHeight(); $web_menu_container.css({ position: 'absolute', width: '100%', top: scroll_top }); $web_menu_container.addClass('menu-fixed'); $fixed_menu_spacer.show(); if (proweb.defined('proweb.content.administration.element_menu')) { $web_menu_container.find('div.pwcre-element').each(function () { var id_element_location = $(this).attr('data-id-element-location'); console.log(id_element_location); var menu = proweb.content.administration.element_menu.getMenu(id_element_location); if (menu) { menu.refreshPosition(); } }); } } else if ($web_controller.length > 0) { scroll_top = $(window).scrollTop(); web_controller_offset_top = $web_controller.offset().top; $web_menu_container.css({ position: 'absolute', width: '100%', top: Math.max(0, scroll_top - web_controller_offset_top) }); if (proweb.defined('proweb.content.administration.element_menu')) { $web_menu_container.find('div.pwcre-element').each(function () { var id_element_location = $(this).attr('data-id-element-location'); console.log(id_element_location); var menu = proweb.content.administration.element_menu.getMenu(id_element_location); if (menu) { menu.refreshPosition(); } }); } } else { scroll_top = $(window).scrollTop(); $web_menu_container.attr('style', ($(window).width() < 600 ? '' : 'top: ' + Math.max(0, freebar_height - scroll_top) + 'px !important')); viewport_height = proweb.getViewportHeight(); $web_menu_container.addClass('menu-fixed'); $fixed_menu_spacer.show(); } } }; $(window).resize(function () { menu_height = $web_menu_container.outerHeight(); if ($fixed_menu_spacer) { $fixed_menu_spacer.css('height', menu_height); } doFixedMenu(); }); $(window).scroll(function () { doFixedMenu(); }); $web_controller.scroll(function () { doFixedMenu(); }); $(window).resize(); });