jQuery | DIV Container beim scrollen oben „andocken“.

Einen DIV-Container an dem Browser Fenster oben zu fixieren ist nicht allzu kompliziert. In folgendem Beispiel ist der DIV immer oben fixiert.

HTML

<div class="top-fixed">Ich bleibe auch beim scrollen immer ganz oben</div>

CSS

.top-fixed {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
}

Jetzt möchten wir aber den DIV-Container erst oben andocken lassen, wenn wir unsere Webseite scrollen. Dazu verwenden wir am besten ein kurzes jQuery Skript. Das Skript kann man entweder in den Head Bereich der Webseite einbinden oder über ein externes File. Damit das Skript auch funktioniert, müssen wir die jQuery Bibliothek einbinden.

jQuery Bibliothek einbinden

Du kannst dir dafür die Bibliothek direkt herunterladen und im Head- bzw. Footer-Bereich deiner Webseite einbinden oder benutzt das CDN von jQuery.

CDN

<script src="https://code.jquery.com/jquery-3.4.1.js" integrity="sha256-WpOohJOqMqqyKL9FccASB9O0KwACQJpFTUBLTYOVvVU=" crossorigin="anonymous"></script>

Direkt einbinden

<script src="pfad/zur/jquery/datei.js" type="text/javascript"></script>

jQuery Skript integrieren

Nach der jQuery Bibliothek platzieren wir das Skript für unseren DIV Container.

<script type="text/javascript">
$(function() {
	var header = $( '.top-fixed' );
	var dis = header.offset().top, $window = $(window);
 	
	$window.scroll(function() {
        if ( $window.scrollTop() >= dis ) {
            header.addClass( 'scrolled' );
        } else {
            header.removeClass( 'scrolled' );
        }
    });
});
</script>

HTML

Unser DIV-Container bleibt gleich wie im ersten Beispiel.

<div class="top-fixed">Ich bleibe auch beim scrollen immer ganz oben</div>

CSS

Das CSS sieht dann wie folgt aus. In unserem Beispiel hat unser DIV einen Abstand von 50 Pixel zum oberen Browser-Rand.

Das CSS kannst du entweder direkt im Head Bereich einbinden oder in einer externen Datei. Entscheidest du dich für einen externe Datei, musst du die erste und letzte Zeile von meinem Beispiel entfernen. Und nicht vergessen die Datei auch zu verknüpfen.

<style>
.top-fixed {
  position: absolute;
  margin: 50px 0 0 0;
  width: 100%;
}
.top-fixed.scrolled {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  margin: 0;
}
</style>

Um das Skript zu testen, braucht deine Webseite natürlich so viel Inhalt dass die Seite auch gescrollt werden kann. Sobald dann z.B. deine Menüleiste an der oberen Kante des Browserfensters ankommt, wird diese oben fixiert.

Wenn dir das Skript gefällt, freue ich mich auf deinen Kommentar.

* Werbung/Affiliate Link
Aktien und ETFs kaufen

Kommentare

  • gaga mees
    16.07.2020 - 07:21 Uhr

    Hallo, hat mir sehr bei einem Projekt geholfen! Vielen Dank!

    Antworten
  • Martin
    19.01.2022 - 13:12 Uhr

    Danke für das Skript,
    eine Frage dazu:

    … $window.scrollTop() >= dis …
    Wird die Seite nicht gescrollt, ist dis 0, es kommt doch erst gar nicht in die else Alternative, die klasse wird einmal vergeben beim scrollen und Ende.
    Oder sehe ich es falsch?

    Danke

    Antworten
    • Markus
      19.01.2022 - 13:23 Uhr

      Hi Martin, scrollst du die Seite wieder nach ganz oben wird die Klasse entfernt (oder du kannst andere Klassen mit else vergeben etc.)

      Antworten

Schreibe einen Kommentar

Erforderliche Felder sind entsprechend markiert.

Wird nicht veröffentlicht.