Сегодня небольшой урок о том как при помощи jQuery зафиксировать блок при прокрутке. Рассмотрю на основе bootstrap 4 меню, так как в 4м бутстрапе больше не используется afix. Но это применимо по сути для любых блоков. Итак у нас есть обычное стандартное меню:
<nav class="navbar navbar-expand-lg navbar-light bg-light" id="top-a"> <a class="navbar-brand" href="#">Navbar</a> <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation"> <span class="navbar-toggler-icon"></span> </button> <div class="collapse navbar-collapse" id="navbarNav"> <ul class="navbar-nav"> <li class="nav-item active"> <a class="nav-link" href="#">Главная <span class="sr-only">(current)</span></a> </li> <li class="nav-item"> <a class="nav-link" href="#">О компании</a> </li> <li class="nav-item"> <a class="nav-link" href="#">Контакты</a> </li> </ul> </div> </nav>
и мы его хотим зафиксировать после прокрутки страницы, для этого воспользуемся jQuery
jQuery(window).scroll(function() { var the_top = jQuery(document).scrollTop(); if (the_top > 200) { jQuery('#top-a').addClass('fixed'); } else { jQuery('#top-a').removeClass('fixed'); } });
где #top-a это id меню, а 200 — это число через сколько пикселей производить фиксацию, все)