0
ページをスクロールすると、ヘッダーがアニメーション化されます。それはslideUp
、クラスを追加し、slideDown
する必要があります。SlideUpコールバックで要素にクラスが追加されない
slideUp
およびslideDown
は期待どおり動作しますが、クラスheader-small
は追加されません。どうして?
$(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>
私は$('header')
に$(this)
を変更しようとしたが、同じ結果ました。あなたは、文字列を実装している
(移動== '偽')場合は、「false''文字列が使用、truthly JavaScriptでの値です偽
のように引用符なしブール値でなければなりません'移動=== false' https://jsfiddle.net/fhqh1tx2/ –
うわー...それは答えです...ありがとう。 – LinkinTED
@A.Wolff、答えとして追加して受け入れます – LinkinTED