Bootstrap Affix-plug-in (geavanceerd)
De Affix-plug-in
Met de Affix-plug-in kan een element worden bevestigd (vergrendeld) aan een gebied op de pagina. Dit wordt vaak gebruikt met navigatiemenu's of sociale pictogramknoppen, om ze op een specifiek gebied te laten "plakken" terwijl ze op en neer over de pagina scrollen.
De plug- in schakelt dit gedrag in en uit (verandert de waarde van
CSS position
van static
in fixed
), afhankelijk van de schuifpositie.
Voorbeeld 1) Een aangebrachte navigatiebalk:
Voorbeeld 2) Een aangebrachte zijbalk:
Met Affix, wanneer we op en neer scrollen op de pagina, is het menu altijd zichtbaar en vergrendeld in zijn positie.
Een vast navigatiemenu maken
Het volgende voorbeeld laat zien hoe u een horizontaal vastgemaakt navigatiemenu maakt:
Voorbeeld
<nav class="navbar navbar-inverse" data-spy="affix" data-offset-top="197">
Het volgende voorbeeld laat zien hoe u een verticaal vastgemaakt navigatiemenu maakt:
Voorbeeld
<ul class="nav nav-pills nav-stacked" data-spy="affix" data-offset-top="205">
Voorbeeld uitgelegd
Voeg toe data-spy="affix"
aan het element dat u wilt aanbrengen.
Voeg optioneel het data-offset-top|bottom
attribuut toe om de positie van de scroll te berekenen.
Hoe het werkt
De affix-plug-in schakelt tussen drie klassen: .affix
, .affix-top
, en
.affix-bottom
. Elke klasse vertegenwoordigt een bepaalde staat. U moet CSS-eigenschappen toevoegen om de werkelijke posities te verwerken, met uitzondering van position:fixed
op de .affix
klasse.
- De plug-in voegt de klasse
.affix-top
of toe.affix-bottom
om aan te geven dat het element zich in de bovenste of onderste positie bevindt. Positionering met CSS is op dit moment niet vereist. - Als u voorbij het toegevoegde element scrolt, wordt de daadwerkelijke toevoeging geactiveerd - Dit is waar de plug -in de klasse
.affix-top
of vervangt.affix-bottom
door de.affix
klasse (setsposition:fixed
). Op dit punt moet u de CSStop
ofbottom
eigenschap toevoegen om het toegevoegde element op de pagina te plaatsen. .affix
Als een onderste offset is gedefinieerd, wordt de klasse vervangen door er voorbij te scrollen.affix-bottom
. Aangezien offsets optioneel zijn, vereist het instellen van één dat u de juiste CSS instelt. Voeg in dit geval toeposition:absolute
indien nodig.
In het eerste voorbeeld hierboven voegt de Affix-plug-in de .affix
klasse (position:fixed) toe aan het <nav>-element wanneer we 197 pixels vanaf de bovenkant hebben gescrolld. Als u het voorbeeld opent, ziet u ook dat we de CSS - top
eigenschap met een waarde van 0 aan de .affix
klasse hebben toegevoegd. Dit is om ervoor te zorgen dat de navigatiebalk te allen tijde bovenaan de pagina blijft, wanneer we 197 pixels vanaf de bovenkant hebben gescrolld.
Scrollspy & Affix
De Affix-plug-in gebruiken samen met de Scrollspy- plug-in:
Horizontaal menu (navigatiebalk)
<body data-spy="scroll" data-target=".navbar" data-offset="50">
<nav class="navbar navbar-inverse" data-spy="affix" data-offset-top="197">
...
</nav>
</body>
Verticaal menu (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>
Volledige Bootstrap Affix-referentie
Ga voor een volledige referentie van alle affix-methoden en -gebeurtenissen naar onze Bootstrap JS Affix-referentie .