Фиксированное меню от bootstrap и панель 1С-Битрикс

Небольшая функция, которая помогает подружить панель 1С-Битрикс и фиксированное верхнее меню от bootstrap

Вызов приведенной ниже функции спасет от перекрытия типовым фиксированным сверху 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');
                }
            }
        }    
Количество показов: 5534
06.09.2015

Возврат к списку

Если вам была полезна статья можете отблагодарить автора:
Ethereum:

0x16Df809287333C49D3A237296C6248A6c08702Bc

Разработка сайта

Подайте заявку на разработку сайта на базе готового решения от компании 1С-Битрикс или одного из партнеров компании. Максимально подробно опишите, чему будет посвящен сайт, если это интернет-магазин - что он будет продавать, нужна ли мультиязычность, будут ли разные типы цен (розница, опт, крупный опт), будет ли интеграция с 1С, будет ли выгрузка товаров на различные торговые площадки...

Сопровождение сайта

Вы можете подать заявку на сопровождение вашего сайта на базе 1С-Битрикс. Сопровождение включает в себя: проверка актуальности обновлений сайта, проверка актуальности резервной копии, консультации по сайту. Опишите в заявке, какие еще объемы планируются на сопровождении и на какой срок вы планируете заключить договор на сопровождение - мы подберем подходящий вам бюджет на сопровождение

Работы по сайту

Вы можете подать заявку на выполнение определенного объема работ по сайту. Опишите в заявке объем работ. Это может быть разработка какого-то нового функционала, доработки по имеющемуся функционалу, доработки под требования сео-специалистов. На основании заявки вам будет сформирован бюджет работ, а также названы сроки на выполнение тех или иных работ.