+7 495 008 8452 пн.-пт. 10:00 – 17:00
Если у вас возникли какие либо вопросы которые вы не смогли решить по нашим публикациям самостоятельно,
то ждем ваше обращение в нашей службе тех поддержки.


Фиксим плавающую панель сайта и панель админки Битрикса

Если у вас на сайте есть панелька, которая должна фиксироваться в верху сайта, то скорее всего в режиме редактирования она закрывает (или закрывается) панелькой админки битрикса.

Вот маленький js скрипт способный решить указанную проблему (используем только BitrixJS :) )

shef-panel - ID Вашей панельки

Переменные
  • minTop = '40px' - высота панельки Битрикса, когда она свернута
  • maxTop = '147px'; - высота панельки Битрикса, когда она развернута
Эти значения будут добавлены в style.top вашей панельки

События
  • onTopPanelFix - обработчик фиксирования панели
  • onTopPanelCollapse - обработчик сворачивания/разварачивания панели Битрикса
<script>
      BX.ready(function(){
      var obShefPanel = BX('shef-panel');
         if(!!obShefPanel){
            var minTop = '40px', maxTop = '147px';
            if(BX.admin.panel.isFixed() === true){
               if(BX.admin.panel.state.collapsed === true){ 
                  obShefPanel.style.top = minTop; 
               }else{ 
                  obShefPanel.style.top = maxTop;
               }
            }else{
               obShefPanel.style.top = '0';
            }
            BX.addCustomEvent('onTopPanelCollapse', BX.delegate(function(data){
               if(BX.admin.panel.isFixed() === true){
                  if(data === true){
                     obShefPanel.style.top = minTop;
                  }else{
                     obShefPanel.style.top = maxTop;
                  }
               }else{
                  obShefPanel.style.top = '0';
               }
            }, this));
            BX.addCustomEvent('onTopPanelFix', BX.delegate(function(data){
               if(data === true){
                  if(BX.admin.panel.state.collapsed === true){
                     obShefPanel.style.top = minTop;
                  }else{
                     obShefPanel.style.top = maxTop;
                  }
               }else{
                  obShefPanel.style.top = '0';
               }
            }, this));
         }
      });
</script>
 
Подключать можно так:
<?if($GLOBALS["USER"]->IsAuthorized()):?>
   <?$APPLICATION->ShowPanel();?>
        <script>/*/ --- сюда вставляем JS код --- //*/</script> 
<?endif;?>
Т.е. пробовать панельку показывать и обрабатывать как минимум для авторизовавшихся пользователей ))

Назад в раздел

Подписаться на новые материалы раздела:












CAPTCHA