Bootstrap -Affix-Plugin (Fortgeschritten)
Das Affix-Plugin
Mit dem Affix-Plug-in kann ein Element an einem Bereich auf der Seite angebracht (gesperrt) werden. Dies wird häufig bei Navigationsmenüs oder Symbolschaltflächen für soziale Netzwerke verwendet, damit sie beim Hoch- und Herunterscrollen der Seite an einem bestimmten Bereich "kleben".
Das Plugin schaltet dieses Verhalten ein und aus (ändert den Wert von
CSS position
von static
zu fixed
), je nach Bildlaufposition.
Beispiel 1) Eine angebrachte Navigationsleiste:
Beispiel 2) Eine angebrachte Seitenleiste:
Wenn wir mit Affix auf der Seite nach oben und unten scrollen, ist das Menü immer sichtbar und an seiner Position fixiert.
So erstellen Sie ein angehängtes Navigationsmenü
Das folgende Beispiel zeigt, wie Sie ein horizontal angebrachtes Navigationsmenü erstellen:
Beispiel
<nav class="navbar navbar-inverse" data-spy="affix" data-offset-top="197">
Das folgende Beispiel zeigt, wie Sie ein vertikal angebrachtes Navigationsmenü erstellen:
Beispiel
<ul class="nav nav-pills nav-stacked" data-spy="affix" data-offset-top="205">
Beispiel erklärt
Fügen data-spy="affix"
Sie dem Element hinzu, das Sie anbringen möchten.
Fügen Sie optional das data-offset-top|bottom
Attribut hinzu, um die Position der Schriftrolle zu berechnen.
Wie es funktioniert
Das Affix-Plugin schaltet zwischen drei Klassen um: .affix
, .affix-top
, und
.affix-bottom
. Jede Klasse repräsentiert einen bestimmten Zustand. Sie müssen CSS-Eigenschaften hinzufügen, um die tatsächlichen Positionen zu handhaben, mit Ausnahme von position:fixed
in der .affix
Klasse.
- Das Plugin fügt die Klasse
.affix-top
or hinzu.affix-bottom
, um anzuzeigen, dass sich das Element an seiner obersten oder untersten Position befindet. Eine Positionierung mit CSS ist an dieser Stelle nicht erforderlich. - Das Scrollen über das angehängte Element hinaus löst das eigentliche Anbringen aus - Hier ersetzt das Plugin die Klasse
.affix-top
or.affix-bottom
durch die.affix
Klasse (setsposition:fixed
). An dieser Stelle müssen Sie das CSStop
oder diebottom
Eigenschaft hinzufügen, um das angehängte Element auf der Seite zu positionieren. - Wenn ein unterer Versatz definiert ist, wird beim Scrollen darüber hinaus die
.affix
Klasse durch ersetzt.affix-bottom
. Da Offsets optional sind, müssen Sie zum Festlegen eines Offsets das entsprechende CSS festlegen. Fügen Sie in diesem Fallposition:absolute
bei Bedarf hinzu.
Im ersten obigen Beispiel fügt das Affix-Plugin die .affix
Klasse (position:fixed) zum <nav>-Element hinzu, wenn wir 197 Pixel von oben gescrollt haben. Wenn Sie das Beispiel öffnen, sehen Sie auch, dass wir die CSS - top
Eigenschaft mit dem Wert 0 zur .affix
Klasse hinzugefügt haben. Dadurch soll sichergestellt werden, dass die Navigationsleiste immer oben auf der Seite bleibt, wenn wir 197 Pixel vom oberen Rand gescrollt haben.
Scrollspy & Affix
Verwendung des Affix-Plugins zusammen mit dem Scrollspy- Plugin:
Horizontales Menü (Navbar)
<body data-spy="scroll" data-target=".navbar" data-offset="50">
<nav class="navbar navbar-inverse" data-spy="affix" data-offset-top="197">
...
</nav>
</body>
Vertikales Menü (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>
Vollständige Bootstrap-Affix-Referenz
Eine vollständige Referenz aller Affix-Methoden und -Ereignisse finden Sie in unserer Bootstrap JS-Affix-Referenz .