Закрепить блок меню

292
13 января 2017, 07:50

Есть такой код.

<section class="header">
           Шапка
        </section>
        <!--//шапка-->
        <!--***МЕНЮ***-->
        <section class="main-menu">
            Меню
        </section>

При пролистовании вниз, как сделать так что бы закреплялся в верху страницы?

Answer 1

Самый простой вариант, как-то так:

$(window).on('scroll', function(e) { 
  var $header = $('.header'), 
      $menu = $('.main-menu'), 
      scroll = $(this).scrollTop(); 
   
  if (scroll >= $header.height()) { 
    $menu.addClass('fixed'); 
  } else { 
    $menu.removeClass('fixed'); 
  } 
});
body { 
  height: 1000px; 
} 
 
.header { 
  background: #eee; 
  height: 80px; 
} 
 
.main-menu { 
  width: 100%; 
  height: 30px; 
  background: #f00; 
} 
 
.main-menu.fixed { 
  position: fixed; 
  top: 0; 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
<section class="header"> 
  Шапка 
</section> 
 
<!--//шапка--> 
 
<!--***МЕНЮ***--> 
 
<section class="main-menu"> 
  Меню 
</section>

Answer 2

position:fixed на блок меню/шапку. Еще полезно придать ему z-index побольше, чтобы новые элементы не налезали на шапку. Если меню не "прилипает" к потолку - используйте top:0px. т.е.

.header 
{
   position:fixed;
   top:0px;
   z-index:9999;
}
READ ALSO
Позиционирование flexbox

Позиционирование flexbox

День добрый! Есть такая html конструкция

378
Перенос строки textarea в ipad(safari)

Перенос строки textarea в ipad(safari)

Не работает перенос строки в textarea в ipad(safari), по-разному пробовал

340
Умножение выбора селекта и данных из инпута

Умножение выбора селекта и данных из инпута

Ребята, подскажите пожалуйста как реализовать такую вещь, есть 1 селект и 1 инпут туда number, при выборе чего то из селекта и ввода числа в инпут,...

450