2017-02-12 2 views
-2

Ich habe eine Frage, ich fand dieses Skript für Sticky Navigation im Internet und ich verstehe nicht, warum die Zeile 'var Scroll Y = $ (Fenster). scrollTop(); ' kann nicht über ‚var stickyNav = function() {‘ seinIch kann den Code nicht verstehen, den ich online fand

Vielen Dank für Hilfe :)

<script> 

$(document).ready(function() { 
     var NavY = $('.nav').offset().top; 

     var stickyNav = function(){ 
     var ScrollY = $(window).scrollTop(); 

     if (ScrollY > NavY) { 
      $('.nav').addClass('sticky'); 
     } else { 
      $('.nav').removeClass('sticky'); 
     } 
    }; 

    stickyNav(); 

    $(window).scroll(function() { 
     stickyNav(); 
    }); 
}); 

</script> 
+0

Da es die tatsächliche Position während scroll passiert passiert – baao

+0

Da eine Codezeile von innerhalb einer Funktion nach außerhalb einer Funktion (oder umgekehrt) verschieben ändert die Struktur, was der Code tut. Wenn Sie Code ändern, wird der Code grundsätzlich * anders *. – David

+0

Ja, die Funktion 'stickyNav()' wird beim Scrollen ausgeführt, so dass die aktuelle Scroll-Position von oben dynamisch an dem Punkt bestimmt werden muss, an dem Scroll ausgelöst wird. Daten, die vor diesem Zeitpunkt zwischengespeichert wurden, sind redundant. – ne1410s

Antwort

0

ScrollY ist als der Abstand von der Spitze des $(window) Objekt berechnet, so dass es wieder benötigt werden - Berechnet jedes Mal, wenn der Benutzer scrollt, da es keine am Anfang festgelegte konstante Variable ist, im Gegensatz zu NavY, was der Abstand zwischen dem Navigationsbereich und dem oberen Rand des Fensters ist.

Dies geschieht, wenn die Funktion stickyNav() aufgerufen wird, wenn der Benutzer das Ereignis .scroll() scrollt.

Verwandte Themen