Wtyczka Bootstrap Affix (zaawansowane)
Wtyczka afiksu
Wtyczka Affix umożliwia przymocowanie (zablokowanie) elementu do obszaru na stronie. Jest to często używane z menu nawigacyjnymi lub przyciskami ikon społecznościowych, aby „przykleić” je do określonego obszaru podczas przewijania strony w górę iw dół.
Wtyczka włącza i wyłącza to zachowanie (zmienia wartość
CSS position
z static
na fixed
), w zależności od pozycji przewijania.
Przykład 1) Umieszczony pasek nawigacyjny:
Przykład 2) Dołączony pasek boczny:
Dzięki Affix, kiedy przewijamy stronę w górę iw dół, menu jest zawsze widoczne i zablokowane w swojej pozycji.
Jak utworzyć przymocowane menu nawigacyjne
Poniższy przykład pokazuje, jak utworzyć poziome, przymocowane menu nawigacyjne:
Przykład
<nav class="navbar navbar-inverse" data-spy="affix" data-offset-top="197">
Poniższy przykład pokazuje, jak utworzyć pionowe menu nawigacyjne:
Przykład
<ul class="nav nav-pills nav-stacked" data-spy="affix" data-offset-top="205">
Przykład wyjaśniony
Dodaj data-spy="affix"
do elementu, który chcesz umieścić.
Opcjonalnie dodaj data-offset-top|bottom
atrybut, aby obliczyć położenie zwoju.
Jak to działa
Wtyczka afiksu przełącza między trzema klasami: .affix
, .affix-top
i
.affix-bottom
. Każda klasa reprezentuje określony stan. Musisz dodać właściwości CSS, aby obsłużyć rzeczywiste pozycje, z wyjątkiem position:fixed
klasy .affix
.
- Wtyczka dodaje klasę
.affix-top
lub.affix-bottom
, aby wskazać, że element znajduje się na najwyższej lub najniższej pozycji. Pozycjonowanie za pomocą CSS nie jest w tym momencie wymagane. - Przewijanie poza dołączony element wyzwala faktyczne umieszczenie — w tym miejscu wtyczka zastępuje klasę
.affix-top
lub klasą (sets ). W tym momencie musisz dodać CSS lub właściwość, aby umieścić dołączony element na stronie..affix-bottom
.affix
position:fixed
top
bottom
- Jeśli zdefiniowano dolne przesunięcie, przewijanie za nim zastępuje
.affix
klasę.affix-bottom
. Ponieważ przesunięcia są opcjonalne, ustawienie jednego wymaga ustawienia odpowiedniego CSS. W takim przypadku dodajposition:absolute
w razie potrzeby.
W pierwszym przykładzie powyżej wtyczka Affix dodaje .affix
klasę (position:fixed) do elementu <nav> po przewinięciu 197 pikseli od góry. Jeśli otworzysz przykład, zobaczysz również, że dodaliśmy top
właściwość CSS o wartości 0 do .affix
klasy. Ma to na celu upewnienie się, że pasek nawigacyjny pozostaje na górze strony przez cały czas, gdy przewiniemy 197 pikseli od góry.
Scrollspy i afiks
Korzystanie z wtyczki Affix razem z wtyczką Scrollspy :
Menu poziome (pasek nawigacyjny)
<body data-spy="scroll" data-target=".navbar" data-offset="50">
<nav class="navbar navbar-inverse" data-spy="affix" data-offset-top="197">
...
</nav>
</body>
Menu pionowe (Sidenav)
<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>
Pełne odniesienie do afiksu Bootstrapa
Aby uzyskać pełne informacje o wszystkich metodach i zdarzeniach afiksów, przejdź do naszego podręcznika Bootstrap JS Affix Reference .