2016-10-17 6 views
-1

Ich möchte eine Navbar haben, die automatisch angezeigt wird, wenn Sie nicht oben auf der Seite sind, die funktioniert; Die Sache ist, wenn ich nach oben scrolle, ändert sich nichts. Kann jemand meinen Code ansehen und mir sagen, was ich ändern oder aktualisieren muss?jQuery-Element ändert sich nicht bei korrekter Funktion

$(document).ready(function() { 
 
    $(window).scroll(function() { 
 
    console.log($(window).scrollTop()); 
 
    if ($(window).scrollTop() != 0) { 
 
     $("#topnav").animate({ 
 
     opacity: 1 
 
     }, 300); 
 
    } else if ($(window).scrollTop() == 0) { 
 
     console.log("done"); 
 
     $("#topnav").css({ 
 
     opacity: 0 
 
     }); 
 
    } 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

Die console tut mir eine Rückkehr geben, aber die Seite scheint nicht zu ändern ..

+0

@Santi Der hier angegebene Code ist absolut kein MCVE. Es gibt kein Markup, auf dem es funktioniert, und wir können den Code nicht ausführen, um das Problem zu reproduzieren. – meagar

+0

Ich nehme an, ich glaube nur, dass eine Flagge und die ursprüngliche Beschwerde zufrieden stellend waren, ohne dass ein zweiter snarky "PHPBB" -Kommentar benötigt wurde. – Santi

+0

@Amorandron - siehe dies - http://StackOverflow.com/a/3464890/104380 – vsync

Antwort

0

Ich denke

if ($(window).scrollTop() != 0) { 
    $("#topnav").animate({opacity: 1}, 300); 
} 

ist eine Menge von Animationen Queuing auf #topnav und so zu versuchen, die Elementmitte Animation ändern wird keinen Effekt haben.

Sie können eine Markierung setzen, um sicherzustellen, dass die Animation auf einmal begrenzt ist. Zum Beispiel:

var flag = false; 

$(window).scroll(function(){ 
    if ($(window).scrollTop() != 0) { 
     if(!flag){ 
      $("#topnav").animate({opacity: 1}, 300, function(){ 
       flag = false; 
      }); 
       flag = true; 
      } 
     } 
     else if ($(window).scrollTop() == 0) { 
      console.log("done"); 
      $("#topnav").css({opacity: 0}); 
     } 
}) 
+0

Nein, funktioniert immer noch nicht – Amorandron

+0

ist "fertig" wird geloggt? – Pat

+0

Ja, es wird geloggt – Amorandron

Verwandte Themen