2016-05-28 9 views
0

Wenn ich die Seite blättern möchte, möchte ich die Kopfzeile animieren. Es sollte slideUp, fügen Sie eine Klasse und slideDown.SlideUp-Callback fügt keine Klasse zum Element hinzu

Die slideUp und slideDown funktionieren wie erwartet, jedoch wird die Klasse header-small nicht hinzugefügt. Woher?

$(function() { 
 
    var moved = false, 
 
     header = $('header'); 
 
    $(window).scroll(function() { 
 
    if ($(document).scrollTop() > 20) { 
 
     if (moved == 'false') { 
 
     header.slideUp(500, function() { 
 
      $(this).addClass('header-small').slideDown('slow'); 
 
     }); 
 
     moved = true; 
 
     } 
 
    } else { 
 
     header.slideUp(500, function() { 
 
     $(this).removeClass('header-small').slideDown('slow'); 
 
     }); 
 
     moved = false; 
 
    } 
 
    }); 
 
});
body, 
 
html { 
 
    height: 300%; 
 
} 
 

 
header { 
 
    position: fixed; 
 
    height: 2em; 
 
    background: lightblue; 
 
    top: 0; 
 
    left: 0; 
 
    width: 100%; 
 
} 
 

 
.header-small { 
 
    font-size: .75em; 
 
    background: red; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<header> 
 
    This is a header with text 
 
</header>

Ich habe $(this) zu $('header') versucht zu ändern, aber dasselbe Ergebnis.

+2

' 'false'' String truthly Wert in Javascript, verwenden 'bewegt === false' https://jsfiddle.net/fhqh1tx2/ –

+0

Wow ... das ist die Antwort ... danke. – LinkinTED

+0

@ A.Wolff, fügen Sie es als Antwort hinzu und ich werde es akzeptieren – LinkinTED

Antwort

0

Sie Zeichenfolge implementiert haben, sollten wie ohne Anführungszeichen boolean Wert falsch

if (bewegt == 'false')

Verwandte Themen