ウィンドウの幅が変更されたときにnavbarのアニメーションを作成するイベントリスナーを追加/削除する方法はありますか?ウィンドウの幅が変更されたときにイベントリスナーを追加/削除する方法
小さな画面(例:幅< 768)の場合→イベントリスナーがある場合は、それを削除してナビバーを一番上に固定します。スクロール時にアニメーションが表示されません。
大画面で→スクロール
<div id="page-header">
<nav class="navbar"> </nav>
</div>
<script>
var flag = true;
$(window).on('scroll', function() {
if ($(window).scrollTop() > 54 && flag ==true) {
console.log('Event Fired');
$('#page-header nav').css({
'position': 'fixed',
'top': '-54px',
'width': '100%',
'z-index': '1000'
})
.animate({
top: '+=54px'
}, 500);
flag = false;
} else if ($(window).scrollTop() === 0) {
$('#page-header nav').css({
'position': 'relative'
});
flag = true;
}
});
</script>
別の関数にハンドラを置いたときになぜそれがうまく動作しないのかわかりません...セレクタがウィンドウであるため、.off()メソッドを使用するときに他のスクロールイベントを削除しません? – Akito
ああ、今私は、オプションの名前空間を追加してイベントを特定できることを知っている。 – Akito
は、私の別の関数がハンドラ関数の後に追加されたかっこのために機能しないことを発見しました。ここでのもう1つの問題は、「オフ」から「オン」に切り替えるときです。時には機能しない場合もあります。それは不安定です。 – Akito