Вызов приведенной ниже функции спасет от перекрытия типовым фиксированным сверху bootstrap-меню административной панели 1С-Битрикс.
div.navbar.navbar-inverse.navbar-fixed-top - объект с меню
function ForFixedPanel(){
var PanelContainer = $('#panel').find('#bx-panel').attr('class');
if(PanelContainer!==undefined){
if(PanelContainer.indexOf('bx-panel-fixed') + 1) {
var padding = $('#panel').height();
$('body').css('padding-top',padding+'px');
$('.navbar-fixed-top').css('top',$('#panel').height()+'px');
}
else {
var padding = parseInt($('div.navbar.navbar-inverse.navbar-fixed-top').height());
$('body').css('padding-top',padding+'px');
}
} else {
var padding = parseInt($('div.navbar.navbar-inverse.navbar-fixed-top').height());
$('body').css('padding-top',padding+'px');
}
if(PanelContainer.indexOf('bx-panel-fixed') == -1) {
var padding = parseInt($('div.navbar.navbar-inverse.navbar-fixed-top').height());
$('body').css('padding-top',padding+'px');
$('.navbar-fixed-top').css('top','0');
}
}
Данная функция проверяет взаимное расположение административной панели и навигационного меню и позицинирует их отнсительно друг друга. Приемр вызова функции:
$(document).ready(function(){
ForFixedPanel();
$(document).on('click','#bx-panel-pin, #bx-panel-hider, #bx-panel-expander', function () {
ForFixedPanel();
})
});
Сразу после загрузки страницы происходит запуск функции и позиционирование, а при нажатии на фиксирующие элементы на административной панели, происходит повторный запуск данной функции.
Update 2016-05-04. Небольшая доработка функции: автодобавление padding-top к body
function ForFixedPanel(){
var PanelContainer = $('#panel').find('#bx-panel').attr('class');
var FixedPanel = $('header .navbar-fixed-top').height();
if(FixedPanel!==undefined){
Body.css('padding-top',FixedPanel+10+'px');
}
if(PanelContainer!==undefined){
if(PanelContainer.indexOf('bx-panel-fixed') + 1) {
var padding = parseInt($('body').css('padding-top')) + $('#panel').height();
$('body').css('padding-top',padding+'px');
$('.navbar-fixed-top').css('top',$('#panel').height()+'px');
}
}
}
