2017-12-16 1 views
0

Ich habe ein funktionierendes Skript, das eine Klasse zum Körper nach dem Bildlauf 80px fügt. Dies funktioniert, aber ich brauche es auch zu arbeiten, nachdem Sie bereits gescrollt und dann die Seite aktualisiert haben.Add Klasse nach dem Scrollen muss auch an der Aktualisierung arbeiten

Also vielleicht den Scroll-Teil durch Position ersetzen?

// fixed header 
$(function() { 
    $(window).scroll(function() { 
     var scroll = $(window).scrollTop(); 
     if (scroll >= 80) { 
      $("body").addClass('fixed'); 
     } else { 
      $("body").removeClass("fixed"); 
     } 
    }); 
}); 
+1

'$ (Fenster) .scroll' nur einmal auftritt, ein Scroll-Ereignis ausgelöst wird. Wenn Sie beim Laden der Seite nach der Bildlaufposition suchen möchten, sollten Sie dies außerhalb des '$ (window) .scroll'-Callbacks tun. – Olian04

+0

Ich habe festgestellt, Neuladen funktioniert nach dem Entfernen der Zeile: '$ (window) .scroll (function() {' aber dann, wenn das Scrollen aufhört zu arbeiten. Irgendeine Idee, dies auf anständige Weise zu tun? – Marc

Antwort

1

Sie haben Recht. Sie müssen das Ereignis und der Anfangswert überprüfen:

window.addEventListener('load', function() { 
    var scroll = $(window).scrollTop(); 
    if (scroll >= 80) { 
     $("body").addClass('fixed'); 
    } 
    //no removing needed cause refresh did it 
}); 
+0

Danke, aber es dann nicht Wenn ich mit dem Scrollen arbeite, oder muss ich es zu dem bestehenden Skript hinzufügen? Es funktioniert dann aber ist es sauber. – Marc

+0

sicher, Sie brauchen sowohl dies und Ihre Veranstaltung –

+0

Danke posoppis, kann Ihre Antwort in 4 Minuten akzeptieren. – Marc

0

$(window).scroll wird nur Feuer, sobald ein Scroll-Ereignis eintritt. Wenn Sie die Bildlaufposition überprüfen möchten, wenn die Seite geladen wird, sollten Sie diese außerhalb des $(window).scroll Rückruf tun, wie folgt aus:

function updateScroll() { 
    if ($(window).scrollTop() >= 80) { 
     $("body").addClass('fixed'); 
    } else { 
     $("body").removeClass("fixed"); 
    } 
} 

$(function() { 
    $(window).scroll(updateScroll); 
    updateScroll(); 
}); 
+0

danke für die Verwendung von jquery (ich bin nur arm in jquery) :) –

Verwandte Themen