Advertisement
AlenaLP

Static_MENU

Jan 28th, 2015
481
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. <div id="mMenu"></div>
  2. <script>
  3.             jq_144(function ($) {
  4.                 var menuCfg = {
  5.                     anchorId: '#block-new9',/* блок относительно которого будут считаться координаты элементов включённых в меню */
  6.                     elementsIds: '#block-new21, #block-new112, #block-new113, #block-new116, #block-new316, #block-new117, #block-new20',/* элементы составляющие меню */
  7.                     centered: false,/* true если требуется расположить строго по центру, false если располагать как есть */
  8.                     bg: 'transparent'/* тут можно указать фон меню на всю ширину страницы, в соответствии с синтаксисом css-свойства background */
  9.                 };
  10.  
  11.                 function ConstractBlock(ppBg, ppElements) {
  12.                     var that = this;
  13.                     that.ppBg = ppBg;
  14.                     var ppElements = ppElements;
  15.  
  16.                     that.ppWidth = $(ppBg).width();
  17.                     that.ppHeight = $(ppBg).height();
  18.  
  19.                     that.topDif = parseInt($(ppBg).css('top'));
  20.                     that.leftDif = parseInt($(ppBg).css('left'));
  21.  
  22.                     $(that.ppBg).css({position: 'relative', top: '', left: '', display: 'block', padding: '0'/*, overflow: 'hidden'*/});
  23.                     $(ppElements).each(function (index, element) {
  24.                         $(ppBg).append(
  25.                             $(element).css({
  26.                                 top: (parseInt($(element).css('top')) - that.topDif) + 'px',
  27.                                 left: (parseInt($(element).css('left')) - that.leftDif) + 'px'
  28.                             })
  29.                         );
  30.                     });
  31.  
  32.                 }
  33.                 function menuOn(mBlock, cfg) {
  34.                     var $menu = $('#mMenu');
  35.                     var $mBlock = $(mBlock.ppBg);
  36.                     $('head').append( '<style>/*menu*/ #mMenu { position: fixed; top: ' + mBlock.topDif + 'px; left: 0; width: 100%; height: ' + mBlock.ppHeight + 'px; background: ' + cfg.bg + '; z-index: 1000; }</style>' );
  37.                    
  38.                     $menu.append( $mBlock.css({ position: 'absolute', left: '50%' }) );
  39.                    
  40.                     if ( cfg.centered ) {
  41.                         $mBlock.css({ marginLeft: -$mBlock.width() / 2 + 'px' });
  42.                     }
  43.                     else {
  44.                         var offset = mBlock.leftDif + (mBlock.ppWidth - $('#preview').width()) / 2;
  45.                        
  46.                         offset = Math.floor(offset);
  47.                         $mBlock.css({ marginLeft: Math.ceil( -$mBlock.width() / 2  ) + offset + 'px' });
  48.                     }
  49.                 }
  50.                
  51.                 var mBlock = new ConstractBlock( menuCfg.anchorId, menuCfg.elementsIds );
  52.                
  53.                 menuOn(mBlock, menuCfg);
  54.             });
  55.         </script>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement