Плагин Bootstrap Affix (расширенный)
Плагин аффикса
Плагин Affix позволяет элементу прикрепляться (запираться) к области на странице. Это часто используется с навигационными меню или кнопками со значками социальных сетей, чтобы они «прилипали» к определенной области при прокрутке вверх и вниз по странице.
Плагин включает и выключает это поведение (меняет значение
CSS position
from static
на fixed
) в зависимости от положения прокрутки.
Пример 1) Прикрепленная панель навигации:
Пример 2) Прикрепленная боковая панель:
С Affix, когда мы прокручиваем страницу вверх и вниз, меню всегда видно и фиксируется на своем месте.
Как создать фиксированное меню навигации
В следующем примере показано, как создать горизонтальное фиксированное меню навигации:
Пример
<nav class="navbar navbar-inverse" data-spy="affix" data-offset-top="197">
В следующем примере показано, как создать вертикальное фиксированное меню навигации:
Пример
<ul class="nav nav-pills nav-stacked" data-spy="affix" data-offset-top="205">
Объяснение примера
Добавьте data-spy="affix"
к элементу, который вы хотите прикрепить.
При желании добавьте data-offset-top|bottom
атрибут для расчета положения прокрутки.
Как это работает
Плагин аффикса переключается между тремя классами: .affix
, .affix-top
и
.affix-bottom
. Каждый класс представляет определенное состояние. position:fixed
Вы должны добавить свойства CSS для обработки фактических позиций, за исключением .affix
класса.
- Плагин добавляет класс
.affix-top
или.affix-bottom
, чтобы указать, что элемент находится в самом верхнем или самом нижнем положении. На данный момент позиционирование с помощью CSS не требуется. - Прокрутка мимо прикрепленного элемента вызывает фактическое добавление — здесь плагин заменяет класс
.affix-top
или.affix-bottom
на.affix
класс (наборыposition:fixed
). На этом этапе вы должны добавить CSStop
илиbottom
свойство, чтобы разместить прикрепленный элемент на странице. - Если задано нижнее смещение, прокрутка мимо него заменяет
.affix
класс на.affix-bottom
. Поскольку смещения являются необязательными, для их установки требуется установить соответствующий CSS. В этом случае добавляйтеposition:absolute
по мере необходимости.
В первом примере выше плагин Affix добавляет .affix
класс (position:fixed) к элементу <nav>, когда мы прокрутили 197 пикселей сверху. Если вы откроете пример, вы также увидите, что мы добавили в класс top
свойство CSS со значением 0 . .affix
Это делается для того, чтобы панель навигации всегда оставалась в верхней части страницы, когда мы прокрутили 197 пикселей сверху.
Scrollspy & Affix
Использование плагина Affix вместе с плагином Scrollspy :
Горизонтальное меню (навигационная панель)
<body data-spy="scroll" data-target=".navbar" data-offset="50">
<nav class="navbar navbar-inverse" data-spy="affix" data-offset-top="197">
...
</nav>
</body>
Вертикальное меню (сиденав)
<body data-spy="scroll" data-target="#myScrollspy" data-offset="15">
<nav class="col-sm-3" id="myScrollspy">
<ul class="nav nav-pills nav-stacked" data-spy="affix" data-offset-top="205">
...
</nav>
</body>
Полный справочник по аффиксам Bootstrap
Полный справочник по всем методам и событиям аффиксов см. в нашем Справочнике по аффиксам Bootstrap JS .